Struts2框架的深入探究
---------------------- android培训 、 java培训 、期待与您交流! ----------------------
Struts2 API的耦合:
<1>ActionContext类
ActionContextcontext = ActionContext.getContext();
ActionContext.getContext().put() = (HttpServletRequest)request.setAttribute()
ActionContext.getContext().get() = (HttpServletRequest)request.getAttribute()
Map map =ActionContext.getContext();
<2>ServletActionContext类 extends ActionContext
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse reponse = ServletActionContext.getResponse();
HttpSession session= ServletActionContext.getRequest().getSession();
HttpApplication application = ServletActionContext.getApplication();
<3>实现ServletRequestAware或者ServletResponseAware接口
public classLoginAction extends ActionSupport implements ServletRequestAware
{
privateHttpServletRequest request;
publicvoid setServletRequest(HttpServletrRequest request)
{
this.request = request;
}
}
public classLoginAction extends ActionSupport implements ServletResponseAware
{
privateHttpServletResponse response;
publicvoid setServletResponse(HttpServletResponse response)
{
this.reponse = response;
}
}
Struts2的动态方法调用:(Dynamic Method Invoked:DMI)
<1>在struts.xml文件中配置
<action name="login" class="com.struts2.action.LoginAction" method="login">
<result name="success">/result.jsp</result>
</action>
将调用LoginAction类中login()方法:
public Stringlogin() throws Exception
{
ReturnSUCCESS;
}
<2>在JSP页面中配置
<s:form action="login!login.action" method="post"></s:form>
解释:第一个login表示匹配struts.xml文件中action的name属性;
第二个login表示匹配LoginAction类中login()方法