《布局 Java EE企业级开发》Struts2部分笔记
- Action访问Servlet API:通常通过类HttpServletRequest、HttpSession、ServletConetext、访问Servlet API,这三条分别代表JSP内置对象request、session、application,通常在Struts2中,通过ActionContext(接口)返回以上类。ServletActionContext extends ActionContext,所以可以通过该类直接访问Servlet,它可以获取的对象有:
(1)javax.servlet.http.HttpServletRequest : HTTPservlet请求对象 .getRequest()
(2)javax.servlet.http.HttpServletResponse : HTTPservlet相应对象 .getResponse()
(3)javax.servlet.ServletContext : Servlet上下文信息 .getServletContext()
(4)javax.servlet.ServletConfig : Servlet配置对象
(5)javax.servlet.jsp.PageContext : Http页面上下文 .getPageContext()
- struts2使用包来管理Action和拦截器,每个包是多个Action、多个拦截器定义和多个拦截器引用的集合。
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="loginInterceptor" class="interceptor.loginInterceptor"></interceptor>
</interceptors>
<!--
<default-action-ref name="index" /> <action name="index">
<result>/hello.jsp</result> </action>
-->
<action name="userlogin" class="action.userlogin">
<result name="loginsuccess">
/loginsuccess.jsp
</result>
<result name="input">
/login.jsp
</result>
<interceptor-ref name="loginInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
<action name="convertTest" class="action.convertTest">
<result>
/loginsuccess.jsp
</result>
</action>
<action name="upload" class="upload.Upload">
<interceptor-ref name="fileUpload">
<!-- 允许的文件类型 -->
<param name="allowTypes">image/bmp,image/jpg,image/png,image/gif,image/jpeg</param>
<!-- 允许上传的文件大小,单位为字节 -->
<param name="maximumSize">102400</param>
<param name=""></param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">/upload</param>
<result>
/loginsuccess.jsp
</result>
<result name="input">/upload/upload.jsp</result>
</action>
</package>
<include file="example.xml" />
<!-- Add packages here -->
</struts>
- 动态result:当action里有String,比如String nextURL = null;此时可以在struts.xml里写
<result name="success"> /${nextURL}.jsp </result>