StrutsPrepareAndExecuteFilter作为一个filter在Web应用中运行,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。如果用户请求以action结尾,该请求会被输入Struts2框架中进行处理。
2.Action 实际上,在MVC框架中,控制器是有由两个部分组成,分别如下。 1).核心控制器(Filter):用于拦截用户请求,对请求进行处理。 2).业务控制器(Action):调用相应的Model类实现业务处理,返回结果。 注:在实际开发中,Action类通常都继承自ActionSupport类。 完成一个Action类后,就需要在struts.xml中配置action了。配置如下
<struts> <!-- name属性可以随便填写 namespace属性为你action的包名 extends属性一定要继承struts-default或者是你自己定义的 --> <package name="default" namespace="/" extends="struts-default"> <!-- 配置action name属性为action名字 class这个action指向那个类--> <action name="FwInfoAction" class="action.FwInfoAction"> <!-- 结果为input时,跳转网页login.jsp,在服务端做验证的时候,默认执行input--> <result name="input">login.jsp</result> <!-- 结果为guanli_error时,跳转页面login.jsp --> <result name="guanli_error">login.jsp</result> <!-- 结果为guanli_success时,跳转页面guanli.jsp --> <result name="guanli_success">guanli.jsp</result> </action> </package> </struts>3.Result Action类在处理完用户请求后,会返回一个处理结果。这个结果是一个简单的字符串,框架根据这个字符串选择对应的 Result,所以我们又将其成为逻辑视图名称。这个逻辑属兔名称由result元素的name属性表示。简单的说就是,用来设定在Action处理结束后,系统下一步将要做什么。
Action的作用 对于struts2应用的开发者而言,Action才是应用的核心。开发者需要提供大量的Action类,并且在struts.xml文件中配置Action。Action主要有三个作用: 1.封装工作单元 可以把Action看作控制器的一部分,其主要职责就是控制逻辑业务,通常使用Action的execute()方法实现这一功能。 2.数据转移的场所 Action会自动将提交的数据,写到对应的属性当中(属性名与提交的参数名相同),记得set、get方法。 3.返回结果字符串 Action的最后一个作用是返回结果字符串,框架根据Action返回的结果字符串选择对应的视图组件呈现给用户。