注解
@Controller
@Service
@RequestMapping
@Resource
@ResponseBody
@Transactional
@Override
注解可以理解为标签,给对象贴一个标签,在shop++里边,@Controller,@Service,
分别是声明他们分别是controller层和service层,告诉系统他们这个类是什么。
@RequestMappin如同字面意思请求映射,@RequestMapping("/admin/mc/user_imgs")
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String add(ModelMap model) {
return "/admin/mc/user_imgs/add";
}
当调用/admin/mc/user_imgs/add时,这个add方法将会响应请求,在shop++的框架里,如果没有特别声明,retrun将会把"/admin/mc/user_imgs/add"这个路径的模板文件展示出来。
return "redirect:list.jhtml";重定向到这个网页
@Resource(name = "userImgsServiceImpl")
private UserImgsService userImgsService;
上述声明了userImgsService这个类是null,Resource注入源文件
public @ResponseBody
Message delete(Long[] ids) {
userImgsService.delete(ids);
return SUCCESS_MESSAGE;
}
ResponseBody标识了这个方法返回的类似json的数据。
@Transactional事务标识,没有完成就回滚到初始状态
@Override重写说明
@Table标识一个数据表
@ManyToOne数据库多对一关系
@JoinColumn(name="addressID")//注释本表中指向另一个表的外键。
@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")。
J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。
freemarker
|
页面中的用户名(即上面的“Big Joe”)是登录这个网页的访问者的名字, 并且最新产品的数据应该来自于数据库才能随时更新。所以,不能直接在HTML页面中输入“Big Joe”、“greenmouse”及链接, 不能使用静态HTML代码。可以使用要求输出的模板来解决,模板和静态页面是相同的,只是它会包含一些FreeMarker将它们变成动态内容的指令:
1 2 3 4 5 6 7 8 9 10 |
|
模板文件存放在Web服务器上,当有人来访问这个页面,FreeMarker就会介入执行,然后动态转换模板,用最新的数据内容替换模板中${...}的部分,之后将结果发送到访问者的Web浏览器中。访问者的Web浏览器就会接收到例如第一个HTML示例那样的内容(也就是没有FreeMarker指令的HTML代码),访问者也不会察觉到服务器端使用的FreeMarker。(存储在Web服务器端的模板文件是不会被修改的;替换也仅仅出现在Web服务器的响应中。)
后辍flt文件