<span style="font-size:24px;">在Struts2这个框架中,Action起到了至关重要的地位,相当于jsp+servlert开发中的servlet。用于接收参数处理数据、返回结果。那么如何去使用呢?三个步骤:</span>
1、开发jsp登陆页面:(login.jsp)
<span style="font-size:18px;"><form action="<span style="color:#ff0000;">login.action</span>" method="post"> 用户名:<input type="text" name="name"/><br/> 密码:<input type="password" name="password"/> <input type="submit" value="登陆"/> </form></span>
2、开发UserAction类(定义登陆方法):
<span style="font-size:18px;">private String name;//接收页面传入的name属性值 private String password;//接收页面传入的password属性值</span>
<span style="font-size:18px;">//省略get/set方法 //登陆方法 public String <span style="color:#ff0000;">login</span>() throws Exception{ Users users=new Users(name, password); Users user=biz.login(users); if (user!=null) { ActionContext.getContext().getSession().put("user", user); return "index"; } else { return "login"; } }</span>
<span style="font-size:24px;"><strong>3、开发struts.xml</strong></span>
<span style="font-size:18px;"><?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> <!-- 字符编码:解决中文乱码 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <package name="dome1" extends="struts-default"> <action name="<span style="color:#ff0000;">login</span>" class="<span style="color:#ff0000;">web.action.UserAction</span>" method="<span style="color:#ff0000;">login</span>"> <result name="login">/login.jsp</result> <result name="index">/index.jsp</result> </action> </package> </struts></span>
</pre><pre name="code" class="html"><span style="font-size:24px;"><strong>4、开发web.xml</strong></span>
<span style="font-size:18px;">在web.xml中加入以下代码,因为struts2的一切请求都需要进入一个名为StrutsPrepareAndExecuteFilter的过滤器中。</span>
<span style="font-size:18px;"><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></span>
</pre><pre>
<span style="font-size:24px;"><strong>5、总结</strong></span>
<span style="font-family:FangSong_GB2312;font-size:18px;">在这个时候,就已经开发出使用jsp+Struts2执行的登陆操作了。那么它怎么执行的呢?这才是我们学习的重点:</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">一:在login.jsp页面输入用户名与密码后,点击登陆,首先进入的是web.xml,然后寻找到要进入的过滤器StrutsPrepareAndExecuteFilter</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">二:在过滤器StrutsPrepareAndExecuteFilter类会进行一些处理(暂时无须了解详情)</span>
三:执行框架定义的拦截器(系统提供很多拦截器,会自动选择执行,暂时无须了解详情)
四:找到name属性值为login的action,然后进入web.action.UserAction类,执行method属性对应的login方法,返回结果字符串
五:找到name属性值为返回结果字符串的result,并允许对应的jsp页面(如登陆成功返回index,那么就会去找到<result name="index">/index.jsp</result>,并且跳转到index.jsp页面)
<span style="font-size:24px;color:#ff0000;">ps:本人写这篇博客是第一次写博客,也是刚学习struts2几天,如有不正确的地方,望各位大神指出,谢谢。</span>