发表于: 2018-10-19 23:28:56
1 475
今日完成:
将前端给的HTML页面改为JSP格式放入项目中,并加入JS和需要的图片
根据静态页面中需要改为动态数据部分的内容来完成DB的设计
优秀学员表
职业表:
private long id;
private String profession;
private String name;
private String description;
private String picture;
private long salary;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getProfession() {
return profession;
}
public void setProfession(String profession) {
this.profession = profession;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
public long getSalary() {
return salary;
}
public void setSalary(long salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Excellent{" +
"id=" + id +
", profession='" + profession + '\'' +
", name='" + name + '\'' +
", description='" + description + '\'' +
", picture='" + picture + '\'' +
", salary=" + salary +
'}';
}
}
实体类
private long id;
private String img;
private String name;
private String introduce;
private int doorsill;
private int index;
private String grow;
private long needed;
private String time1;
private String time2;
private String time3;
private String salary1;
private String salary2;
private String salary3;
private long numble;
private String language;
private String status;
private String background;
public String getBackground() {
return background;
}
public void setBackground(String background) {
this.background = background;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public int getDoorsill() {
return doorsill;
}
public void setDoorsill(int doorsill) {
this.doorsill = doorsill;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public String getGrow() {
return grow;
}
public void setGrow(String grow) {
this.grow = grow;
}
public long getNeeded() {
return needed;
}
public void setNeeded(long needed) {
this.needed = needed;
}
public String getTime1() {
return time1;
}
public void setTime1(String time1) {
this.time1 = time1;
}
public String getTime2() {
return time2;
}
public void setTime2(String time2) {
this.time2 = time2;
}
public String getTime3() {
return time3;
}
public void setTime3(String time3) {
this.time3 = time3;
}
public String getSalary1() {
return salary1;
}
public void setSalary1(String salary1) {
this.salary1 = salary1;
}
public String getSalary2() {
return salary2;
}
public void setSalary2(String salary2) {
this.salary2 = salary2;
}
public String getSalary3() {
return salary3;
}
public void setSalary3(String salary3) {
this.salary3 = salary3;
}
public long getNumble() {
return numble;
}
public void setNumble(long numble) {
this.numble = numble;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
@Override
public String toString() {
return "Job{" +
"id=" + id +
", img='" + img + '\'' +
", name='" + name + '\'' +
", introduce='" + introduce + '\'' +
", doorsill=" + doorsill +
", index=" + index +
", grow='" + grow + '\'' +
", needed=" + needed +
", time1='" + time1 + '\'' +
", time2='" + time2 + '\'' +
", time3='" + time3 + '\'' +
", salary1='" + salary1 + '\'' +
", salary2='" + salary2 + '\'' +
", salary3='" + salary3 + '\'' +
", numble=" + numble +
", language='" + language + '\'' +
", status='" + status + '\'' +
", background='" + background + '\'' +
'}';
}
}
Mybatis的映射接口Mapper:
public interface ExcellentMapper {
@Select(value = "select *from excellent_student order by salary desc limit 4")
List<Excellent> show();
}
public interface JobMapper {
@Select(value = "select *from job where status=#{status}")
List<Job> show(String status);
}
优秀学员展示页有个需求是要能够根据学员薪水的多少来排序,并且只显示前四名。
这块需要用order by SQL语句
select *from excellent_student order by salary desc limit 4
Controller:
@Controller
public class MessageTest1 {
@Autowired
private ExcellentMapper excellentMapper;
@Autowired
private JobMapper jobMapper;
@RequestMapping(value = "task-91.html", method = RequestMethod.GET)
public ModelAndView test(ModelAndView modelAndView) {
List list = excellentMapper.show();
modelAndView.addObject("list", list);
modelAndView.setViewName("task-91");
return modelAndView;
}
@RequestMapping(value = "task-92.html", method = RequestMethod.GET)
public ModelAndView test2(ModelAndView modelAndView) {
modelAndView.addObject("code", -2);
modelAndView.setViewName("task-92");
return modelAndView;
}
@RequestMapping(value = "task-93.html", method = RequestMethod.GET)
public ModelAndView test3(ModelAndView modelAndView) {
List list1=jobMapper.show("前端开发方向");
List list2=jobMapper.show("后端开发方向");
List list3=jobMapper.show("运维方向");
modelAndView.addObject("job1", list1);
modelAndView.addObject("job2", list2);
modelAndView.addObject("job3", list3);
modelAndView.setViewName("task-93");
return modelAndView;
}
}
在JSP中需要使用C标签的foreach来遍历赋值
<c:forEach items="${list}" var="Excellent">
把需要传值的部分改为EL表达式就OK了。
这里需要注意forEach的作用域。
在职业页面中有一个需求是门槛和难易程度都是用星星的个数来表示的,原来HTML中是用
<img src="images/star.png" alt="">
调用星星图片来实现的,一个星星就调用一次,两个星星就写两条img src 的语句
可以说是非常睿智了
在数据库中我们是用数字来表示这些程度的,把数字传进来,还是使用c标签的forEach
不过还上面的用法稍微有点不同的就是传进来的值是作为循环次数的。如下:
<c:forEach begin="1" end="${Job.doorsill}">
将需要循环的代码放在c的作用域中就好了。这个和java的for循环一样,悄悄告诉你,其实这些标签后面封装的就是java的程序。
然后看一些效果吧:
数据库中指定难易程度为100!!
一百个小星星就出来了。
明日计划:
学习tiles框架
用Tag标签来处理时间的转换
遇到的问题:
在使用EL表达式时出现了怎么传都传不进来的情况。
第一个页面可以,第二个不行。然后就对比了下,发现没啥不同啊。最后永辉说是不是jsp上面的标签
<%@page
有问题,恍然大悟,出问题的页面中我有这个操作:
isELIgnored="true"
把EL表达式给关了。
没问题的那个页面没有去设置这个,所以它应该是默认打开EL表达式的。
还是对C标签没有花太多的精力去学习,没有重视这块,一直以为这些都是前端的东西。
才知道这玩意是JAVA的东西,标签后面封装的都是JAVA代码。
后面一定要把C标签这块搞熟悉的。
收获:
以上。
评论