现在的位置: 首页 > 综合 > 正文

Struts2中的Action

2018年02月04日 ⁄ 综合 ⁄ 共 2750字 ⁄ 字号 评论关闭

<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>


抱歉!评论已关闭.