用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf ·...
Transcript of 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf ·...
用struts1.x、struts2.x写一个登陆
struts 学习笔记
思路
• 1首先考虑表示层一个简单登陆要应用到几个页面
login.jsplogin.jsplogin.jsplogin.jsp
success.jspsuccess.jspsuccess.jspsuccess.jsp
fail.jspfail.jspfail.jspfail.jsp
serverserverserverserver
考虑后台控制
Rquest
Response
Sever
pages
• 1.对于页面表单参数的封装
对于struts1.x要在后台建立与前台页面相对应的表单LoginForm(继承org.apache.struts.action.ActionForm)进行表单参数的封装
对于struts2.x可以不建立应用于前台对应包装
LoginForm,并且可以在Action进行获取
• 2.逻辑控制
对于struts1.x 它的控制是LoginAction 即要求处理逻辑类要继承struts1.x中的Action(org.apache.struts.action.Action)
• 对于struts2.x它的控制类LoginAction要继承ActionSupport(com.opensymphony.xwork2.ActionSupport)
• 如何获得前台表单参数
• 对于Struts1.x中获得参数的方式是
UserForm userform = (UserForm) form 可以通过userform来获得他的属性
• 对于Struts 2.x 要在Action中要设置对应属性的getter和setter方法 这样就可以获得前台参数
• 对于参数判断处理
• 对于Struts1.x 要在Action的execute方法中进行逻辑控制
if (username.equals("tom") && userpassword.equals("123456")) {return mapping.findForward("success");
} else {return mapping.findForward("fail");
}
• 对于Struts2.x 也是在execute方法中进行逻辑处理if (username.equals("tom") && password.equals("123456")) {
return SUCCESS;} else {
return ERROR;}
Struts配置文件配置• 对于Struts1.x<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration 1.3//EN" "struts-config_1_3.dtd" ><struts-config>
<form-beans><!-- name 是定义的名字是与后面的那个那么相关联 ,type指定的对应的是
那个类--><form-bean name="login" type="com.li.formbean.UserForm"></form-bean>
</form-beans>
<action-mappings><!-- path 前台进行调用的访问方法 --><action input="/login.jsp" path="/dologin" name="login"
type="com.li.formaction.LoginAction"><forward name="success" path="/success.jsp"></forward><forward name="fail" path="/fail.jsp"></forward>
</action></action-mappings>
</struts-config>
• <?xml version="1.0" encoding="UTF-8" ?>• <!DOCTYPE struts PUBLIC• "-//Apache Software Foundation//DTD Struts
Configuration 2.3//EN"• "http://struts.apache.org/dtds/struts-2.3.dtd">
• <struts>• <package name="logtest" extends="struts-default">
• <action name="login" class="com.li.formaction.LoginAction">• <result name="success">/success.jsp</result>• <result name="error">/fail.jsp</result>• </action>• </package>• </struts>
在工程中加载Struts配置文件• <!-- 加载struts1的配置文件,由于 struts1的最大的控制器是
ServletAction• 所以首先必须先加载它 -->• <servlet>• <servlet-name>action</servlet-name>
• <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>• <init-param>• <param-name>config</param-name>• <param-value>/WEB-INF/struts-config.xml</param-value>• </init-param>• <load-on-startup>2</load-on-startup>• </servlet>• <servlet-mapping>• <servlet-name>action</servlet-name>• <url-pattern>*.do</url-pattern>
• </servlet-mapping>
• <filter>• <filter-name>struts2</filter-name>• <filter-
class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
• </filter>
• <filter-mapping>• <filter-name>struts2</filter-name>• <url-pattern>/*</url-pattern>• </filter-mapping>