标签:
自学了一段时间的java了,最近开始自己做点小项目练手了,争取每做一些,总结一些,顺便复习以前所学的知识。今天遇到一个bug调了2个小时,
醉了,菜鸟调试bug,内心真的是有一亿个草泥马在奔腾啊!不过真的挺喜欢程序里面的逻辑线条的。
一. 整个MVC逻辑流程(以增加为例)
1.Jsp页面:用js实现表单中增加的方法doAdd(),单击增加按钮时则触发doAdd()方法提交表单到${basePath}nsfw/user_addUI.action这个地址
function doAdd(){
document.forms[0].action="${basePath}nsfw/user_addUI.action";
document.forms[0].submit();
}
<form name="form1" action="" method="post" enctype="multipart/form-data">
<input type="button" value="新增" class="s_button" onclick="doAdd()"/>
</form>
2.Action类:(1)获取jsp页面提交过来的数据,并封装成对象 (自动由Struts2调用对象的set方法做) (2)调用service,把封装好的对象传给Service处理业务逻辑
3.service层:调用Dao层与数据库进行交互 如果是查询操作会返回一个对象
4.Action类:拿到返回的对象,保存在域对象中。跳转到JSP页面
5.JSP:用el表达式从域对象中获取查询到的对象,动态的给各个标签赋值,就这样响应给用户。
二.页面跳转的逻辑
1.一般情况下,会有三个页面(如下图):用户列表展示页面listUI,用户新增操作页面addUI,用户编辑操作页面editUI。
2.三个页面中有7个有关增删改查的按钮代表7个action。
3.展示所有用户:action调用findObjects()方法,在数据库中查询并返回所有用户,跳转到列表展示页的JSP中,展示所有用户。
4.新增操作:点击新增按钮,action直接跳转的用户新增操作页面,点击保存,action调用save(user)方法将新用户保存到数据库中,再重定向到展示所有用户的action,
查询所有用户展示
5.编辑操作:点击编辑按钮,action调用findObjectById(user.getId())的方法,在数据库中查询并返回指定用户,跳转到编辑操作页面JSP中,展示出该用户。
修改后点击保存,更新action会将用户新的属性更新到数据库中,最后重定向到展示所有用户的action。
6删除操作:点击删除按钮,action调用delete(user.getId())方法,在数据库中删除指定用户。重定向到展示所有用户的action。
public class UserAction extends ActionSupport {
@Resource
private UserService userService;
private List<User> userList;
private User user;
private String[] selectedRow;
//列表页面
public String listUI(){
userList=userService.findObjects();
return "listUI";
}
//跳转到新增页面
public String addUI(){
return "addUI";
}
//保存新增
public String add(){
if(user!=null){
userService.save(user);
}
return "list";
}
//跳转到编辑页面
public String editUI(){
if (user!=null && user.getId()!=null) {
user = userService.findObjectById(user.getId());
}
return "editUI";
}
//保存编辑
public String edit(){
if(user!=null){
userService.update(user);
}
return "list";
}
//删除
public String delete(){
if (user!=null && user.getId()!=null) {
userService.delete(user.getId());
}
return "list";
}
//批量删除
public String deleteSelected(){
if(selectedRow!=null){
for(String id:selectedRow){
userService.delete(id);
}
}
return "list";
}
标签:
原文地址:http://www.cnblogs.com/DaCheng91/p/5132158.html