struts1和struts2区别总结(1)

自己总结一些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的一点区别 ,其他的区别还在继续挖掘中。。。。
如有不对,还忘大家及时指出。。互相学习下

你可能感兴趣的:(java,jsp,框架,struts,servlet)