自己总结一些struts1和struts2区别,本人总结只供自己参考,因为还是初学struts框架,如有错误,还希望大家指出
1、比如用户在登录账号和密码都为null时会在 会在action中做个校验:
a 、就拿struts1来说 :
它的action的方法中是:
[code="java"]/**
* 执行的核心方法,相当于与servlet中的 doget和dopost方法
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
if(userForm.getUsername().equals("123")&&userForm.getPassword().equals("123"))
{
//登录成功
request.getSession().setAttribute("username", userForm.getUsername());
//进行跳转,在action中是通过返回值实现跳转
return mapping.findForward("suc");
}else{
//登录失败,返回登录页面,同时显示错误信息
//建立保存错误信息的集合
ActionMessages errors=new ActionMessages();
//添加到错误信息中
errors.add("Loginerror", new ActionMessage("logon.errors"));
this.addErrors(request, errors);
return mapping.getInputForward();
}
}
页面上提示错误的的信息代码是:
<body>
<html:form action="login.do" method="post">
<table border="0">
<tr>
<td>账号:</td>
<td><html:text property="username" /></td>
<td><font color="red"><html:errors property="username" /></font> </td>
</tr>
<tr>
<td>密码:</td>
<td><html:password property="password" /></td>
<td> <font color="red"><html:errors property="password" /> </font> </td>
</tr>
<tr>
<td colspan="2" align="center"><html:submit value="提交" /></td>
</tr>
<font color="red"> <html:errors property="Loginerror" /> </font>
</table>
</html:form>
以上是错误信息的提示操作 在struts1中的写法:
而在struts2 中 ,则你会发现简答的很多
第一 : 在action中也会有微妙的变化为:
@Override
/**
* 该类继承了actionSupport在重写了validate()这个方法
*/
public void validate() {
if(this.getUsername()==null||"".equals(this.getUsername()))
{
this.addFieldError("username", "username required");
}
if(this.getPassword()==null||"".equals(this.getPassword()))
{
this.addFieldError("password", "password required");
}
}
而struts的好处就体现了,这个时候你就不需要去更改你的页面信息了
而页面jsp的内容为:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<s:form action="login">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:submit label="submit" ></s:submit>
</s:form>
</body>
</html>
以上是我总结的struts1和struts2的一点区别 ,其他的区别还在继续挖掘中。。。。
如有不对,还忘大家及时指出。。互相学习下