-
MVC模式图解。查看全部
-
MVC模式简介。查看全部
-
struts是流行和成熟的基于MVC设计模式的web应用程序框架。 使用Struts的目的: 为了帮助我们减少在运用MVC设计模型来开发web应用的时间。查看全部
-
result 子标签<param>具备两个属性:location和parse查看全部
-
struts全局变量查看全部
-
MVC模式查看全部
-
3.(推荐使用)用org.apache.struts2.ServletActionContext,该类是ActionContext的子类. //得到HttpServletRequest对象 public static HttpServletRequest getRequest() //得到HttpServletResponse对象 public static HttpServletResponse getResponse() //得到ServletContext对象 public static ServletContext getServletContext() ServletActionContext类并没有给出直接得到HttpSession对象的方法,HttpSession对象可以通过HttpServletRequest对象来得到.查看全部
-
2.IOC(控制反转)获取servletAPI Action类还有另一种获得ServletAPI的解耦方式,这就是我们可以让他实现某些特定的接口.让Struts2框架在运行时向Action实例注入request、session和application对象.这种方式也就是IOC(控制反转 )方式,与之对应的三个接口和它们的方法如下所示: public class SampleAction extends SupportAction implements ServletRequestAware, SessionAware, ServletContextAware,ServletResponseAware{ private HttpRequestRequest request; private HttpResposeResponse response; private Map session; private ServletContext application; @Override public void setServletRequest(HttpServletRequest arg0) {this.request = request;} @Override public void setServletRequest(HttpServletResponse arg0) {this.request = request;} @Override public void setSession(Map arg0) {this.session = session;} @Override public void setServletContext(ServletContext arg0) {this.application = application;} } ServletRequestAware接口和ServletContextAware接口不属于同一个包,前者在org.apache.struts2.interceptor包中,后者在org.apache.struts2.util包中查看全部
-
获取servletAPI的三种方法 1.ServletAPI解藕方式,获取Map对象: 为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest、HttpSession和ServletContext进行了封装,构造了三个Map对象来替代这三种对象. 在Action中,直接使用HttpServletRequest、HttpSession和ServletContext对应的Map对象来保存和读取数据.可以通过com.opensymphony.xwork2.ActionContext类来得到这三个对象. ActionContext是Action执行的上下文,保存了很多对象如parameters、request、session、application和locale等. //得到Action执行的上下文 ActionContext context=ActionContext.getContext(); //得到HttpServletRequest的Map对象 Map request=(Map)context.get("request"); //得到HttpSession的Map对象 Map session=context.getSession(); //得到ServletContext的Map对象 Map application=context.getApplication(); ActionContext中保存的数据能够从请求对象中得到,其中的奥妙就在于Struts 2中的org.apache.struts2.dispatcher.StrutsRequestWrapper类.这个类是HttpServletRequest的包装类,它重写了getAttribute()方法(在页面中获取request对象的属性就要调用这个方法) 在这个方法中,它首先在请求对象中查找属性,如果没有找到(如果你在ActionContext中保存数据,当然就找不到了),则到 ActionContext中去查找.这就是为什么在ActionContext中保存的数据能够从请求对象中得到的原因.查看全部
-
struts工作原理查看全部
-
<result>标签有一个很重要的属性type="",这个属性默认值是dispatcher,此类型支持jsp视图技术,即支持返回jsp页面. <result name="success" type="dispatcher">success.jsp</result> Struts2支持多种视图技术,如JSP、Valocity(模板引擎)、FreeMaker(模板引擎)等,后两个很少用.查看全部
-
<result>结果集标签还有自己的子标签(少用) 默认情况下parse属性为true,即支持OGNL表达式. 假如#request.path(OGNL表达式)为index.jsp <result name="success"> <param name="location">${#request.path}.jsp</param> //在<param>标签下是写OGNL表达式的. </result> 与<result name="success">index.jsp</result>效果一样.查看全部
-
<global-results>标签需要在package标签下.全局结果集好处是可以供多个action直接使用.局部结果集只能属于某个action. 如果一个result配置可以被action共享,则可以把该result配置抽取为公共的,即global-results: <package name="p1" namespace="/p1" extends="struts-default"> <global-results> <result name="common">/common.jsp</result> </global-results> </package> 如果其他的package下也想共享此result,则可以使用package的extends属性,看如下配置: <package name="p2" namespace="/p2" extends="p1"> ... </package> 即用extends关键字继承其他的package.查看全部
-
处理结果类型,只有INPUT比较特殊.查看全部
-
struts2处理流程 用户请求(通过路径)-->Struts2框架来解析-->找到Action,便将处理结果返回给struts2框架-->struts2框架接收处理结果集-->调用相应视图资源 Struts2中处理结果是字符串,Struts1是ActionForward.查看全部
举报
0/150
提交
取消