摘要:SiteMesh:一个优于Apache Tiles的Web页面布局、装饰框架一、SiteMesh项目简介OS(OpenSymphony)的SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。 Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,
阅读全文
摘要:第一步导入四个jar包,也可以直接利用myeclipse配置这样更简单。第二步:在web.xml加一个listener<!-- 配置tiles:listener --> <listener> <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class> </listener> <context-param> <param-name>tilesDefinitions</param-name> <para
阅读全文
摘要:1 拦截器拦截是动作(action),过虑器过虑的是请求(requet)一般映射为/*,过虑所有的请求。2 拦截器是基于JAVA中反射机制的,而过虑器是基于函数回调3 过虑器是依赖Servlet容器,而拦截器不依赖于Servlet容器。4 拦截器可以访问Action上下文,值栈里的对象,而过虑器不能。5 action的生命周期中,拦截器可以多次调用,而过虑器只能在容器初始化时被调用一次。实现自定义拦截器 (是先进后出的原则)--实现对所有方法的拦截第一种方法:action实现一个接口AbstractInterceptor第一步定义一个interceptor (net.nw.intercepto
阅读全文
摘要:OGNL导航:就是属性的级联:Person.user.name () OGNL 对应是jsp EL表达式投影/选择:#this 当前的集合对象 ?:所有,^:第一个,$:最后一个如jsp页面中<s:property value="students.{?#this.age>=30}"/> 意思就是得到这个students这个集合中所有age>=30的,后台students是一个集合.<s:property value="students.{?#this.age>=30}.{name}" 意思就是得到这个students这
阅读全文
摘要:第一步:Action 方法上加一个异常处理 throws Exception第二步:在struts.xml文件中加全局配制文件<package name="default" namespace="/" extends="struts-default"><global-results><result name="error">/error.jsp</result></global-results><global-exception-mappings&g
阅读全文
摘要:使用注解来配置Action的最大好处就是可以实现零配置,但是事务都是有利有弊的,使用方便,维护起来就没那么方便了。要使用注解方式,我们必须添加一个额外包:struts2-convention-plugin-2.x.x.jar。虽说是零配置的,但struts.xml还是少不了的,配置如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.
阅读全文
摘要:配置文件加载依次是如下:如果有相的常量,则后面把前面的替代掉。1、struts.default.xml2、struts-plugin.xml3、struts.xml Constant --一般喜欢放在这里,不放在struts.properties 常用:struts.devMode = false初期一般初始为:true <Constantname="struts.devMode" value="true"/> <Constant name="struts.i18n.encoding" value="UTF
阅读全文
摘要:myeclipse 创建struts2项目1:struts2的线程安全,因为每调一个action方法就是实例化一次它的构造函数。2:action不依赖一容器,可以脱离web容器单独测试,也可以访问request response3:支持通过拦截器,为每个action创建不同的生命同期。第一创建方式 public class UserAction{publisc String execute()}第二创建方式 public class UserAction implements Action {public String execute()} :实现Action接口第三创建方式 public c
阅读全文