struts2拦截器的简单总结(3)
2016-09-29 19:20
363 查看
action与servlet API
action与servlet API是完全松耦合的,action类中可以方便进行测试 可以通过ActionContext类来访问servlet API,常用的方法有put,get,getApplication() 等
可以通过实现接口 来访问servlet 比如ServletContextAware来访问servlet
public class action extends ActionSupport implements ServletContextAware {
/**
*
*/
private ServletContext context;
struts2的标签库 OGNL语言的使用 可以简洁方便的访问后台数据 如#session['user']
添加头元素
<%@taglib prefix="s" uri="/struts-tags" %>uri表示struts2标签库的URI prefix表示该标签库的前缀 对于所有的struts2标签库的使用都需要以s为前缀 当struts2框架发现某个标签是s前缀的 就认定是struts2标签
访问address属性
<s:property value = "#address"/>if else标签
<s:if test="'A' in {'C','B'}">
A
</s:if>
<s:elseif test = "'A' in {'A','B'}">
B</s:elseif>
<s:else>
C
</s:else>append标签
<s:append var = "newList">
<s:param value = "{'HTML','Java'}"></s:param>
<s:param value = "{'swift','OC'}"></s:param>
</s:append>interator标签 用于进行循环遍历输出
<s:iterator value = "%{#newList}" id = "lst">
<s:property value = "lst"/>
</s:iterator>
merge标签
a 标签 表示一个超链接
action 标签 表示动用struts.xml中哪个acion
<s:a action="actionBiaoqian">ccc</s:a><s:bean标签用于加载javabean param标签可以初始化参数值
<s:bean var = "user" name = "com.biaoqian.test.User">
<s:param name = "name" value = "tom"></s:param>
<s:param name = "age" value = "20"></s:param>
<s:if test="#user.age > 0">
<s:property value = "#user.name"/>
</s:if>
</s:bean>个人认为最重要的还是表单元素
<s:form action = "action" namespace="/user">
<s:textfield label="name" name="username"></s:textfield>
<s:textfield label = "password" name = "password"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>指定fom表单的action和 textfield中的关联类和 label值等
接下来最重要的就是strut2的拦截器部分了,是AOP思想的一种实现 可以吧大问题 分解为小问题 分别给不同的拦截器进行调用即可,拦截器在一起 还可以组成一个拦截器链,这些拦截器链会按照指定的顺序进行调用
struts2的默认拦截器
alias拦截器 作用是给参数起一个别名,让不同的action共享同一个参数值 实现了action之间的传值 只要在action下面加一个param元素 随后该元素name属性命名为aliases即可
<action name = "firstAction" class = "com.kevinswift.action.FirstAction">
<!-- 指定action结果类型为chain -->
<result type = "chain">secondAction</result>
</action>
<action name = "secondAction" class = "com.kevinswift.action.SecondAction">
<result>success.jsp</result>
<!-- 分别要传的值 -->
<param name = "aliases">#{'firfirstCountry':'secondCountry'}</param>
</action>两个类中进行打印和输出firstCountry和secondCountry
package com.kevinswift.action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;
public class FirstAction extends ActionSupport implements Preparable{
//分装请求参数 firstCountry
private String firstCountry;
public String getFirstCountry() {
return firstCountry;
}
public void setFirstCountry(String firstCountry) {
this.firstCountry = firstCountry;
}
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.print("firstAction" + firstCountry);
return SUCCESS;
}
@Override
public void prepare() throws Exception {
// TODO Auto-generated method stub
System.out.println(firstCountry);
}
}
其他两个系统拦截器个人认为不是非常的常用
action与servlet API是完全松耦合的,action类中可以方便进行测试 可以通过ActionContext类来访问servlet API,常用的方法有put,get,getApplication() 等
ActionContext.getContext().put("name", "caokaiqiang"); //通过session来放值 ActionContext.getContext().getSession().put("name1", "kevin");
ActionContext.getContext().getApplication().put("name","tom");这样 便可以在jsp页面中进行访问,${sessionScope.name}
可以通过实现接口 来访问servlet 比如ServletContextAware来访问servlet
public class action extends ActionSupport implements ServletContextAware {
/**
*
*/
private ServletContext context;
public void setServletContext(ServletContext arg0) { // TODO Auto-generated method stub this.context = arg0; this.context.setAttribute("user", "jim"); }实现相应的方法即可 同样也可以通过其他接口来进行访问 例如httpServletResponse方法httpServletRequest方法等
struts2的标签库 OGNL语言的使用 可以简洁方便的访问后台数据 如#session['user']
添加头元素
<%@taglib prefix="s" uri="/struts-tags" %>uri表示struts2标签库的URI prefix表示该标签库的前缀 对于所有的struts2标签库的使用都需要以s为前缀 当struts2框架发现某个标签是s前缀的 就认定是struts2标签
访问address属性
<s:property value = "#address"/>if else标签
<s:if test="'A' in {'C','B'}">
A
</s:if>
<s:elseif test = "'A' in {'A','B'}">
B</s:elseif>
<s:else>
C
</s:else>append标签
<s:append var = "newList">
<s:param value = "{'HTML','Java'}"></s:param>
<s:param value = "{'swift','OC'}"></s:param>
</s:append>interator标签 用于进行循环遍历输出
<s:iterator value = "%{#newList}" id = "lst">
<s:property value = "lst"/>
</s:iterator>
merge标签
<pre name="code" class="java"><s:merge var = "mer"> <s:param value = "{'HTML','Java'}"></s:param> <s:param value = "{'swift','OC'}"></s:param> </s:merge>
相当于checkbox
<!-- 对集合进行操作 创建了两个集合 随后默认china为默认值 --> <s:select list="{'america','china'}" label = "Country" name = "country" value = "%{'china'}"></s:select> <!-- 创建一个map对象 --> <s:select list="#{'0':'female','1':'male'}" label = "sex" name = "sex"></s:select>struts2的数据标签
a 标签 表示一个超链接
action 标签 表示动用struts.xml中哪个acion
<s:a action="actionBiaoqian">ccc</s:a><s:bean标签用于加载javabean param标签可以初始化参数值
<s:bean var = "user" name = "com.biaoqian.test.User">
<s:param name = "name" value = "tom"></s:param>
<s:param name = "age" value = "20"></s:param>
<s:if test="#user.age > 0">
<s:property value = "#user.name"/>
</s:if>
</s:bean>个人认为最重要的还是表单元素
<s:form action = "action" namespace="/user">
<s:textfield label="name" name="username"></s:textfield>
<s:textfield label = "password" name = "password"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>指定fom表单的action和 textfield中的关联类和 label值等
接下来最重要的就是strut2的拦截器部分了,是AOP思想的一种实现 可以吧大问题 分解为小问题 分别给不同的拦截器进行调用即可,拦截器在一起 还可以组成一个拦截器链,这些拦截器链会按照指定的顺序进行调用
struts2的默认拦截器
alias拦截器 作用是给参数起一个别名,让不同的action共享同一个参数值 实现了action之间的传值 只要在action下面加一个param元素 随后该元素name属性命名为aliases即可
<action name = "firstAction" class = "com.kevinswift.action.FirstAction">
<!-- 指定action结果类型为chain -->
<result type = "chain">secondAction</result>
</action>
<action name = "secondAction" class = "com.kevinswift.action.SecondAction">
<result>success.jsp</result>
<!-- 分别要传的值 -->
<param name = "aliases">#{'firfirstCountry':'secondCountry'}</param>
</action>两个类中进行打印和输出firstCountry和secondCountry
package com.kevinswift.action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;
public class FirstAction extends ActionSupport implements Preparable{
//分装请求参数 firstCountry
private String firstCountry;
public String getFirstCountry() {
return firstCountry;
}
public void setFirstCountry(String firstCountry) {
this.firstCountry = firstCountry;
}
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.print("firstAction" + firstCountry);
return SUCCESS;
}
@Override
public void prepare() throws Exception {
// TODO Auto-generated method stub
System.out.println(firstCountry);
}
}
package com.kevinswift.action; import com.opensymphony.xwork2.ActionSupport; public class SecondAction extends ActionSupport { private String secondCountry; /** * */ private static final long serialVersionUID = 1L; @Override public String execute() throws Exception { // TODO Auto-generated method stub System.out.println("secondAciton" + secondCountry); return SUCCESS; } public String getSecondCountry() { return secondCountry; } public void setSecondCountry(String secondCountry) { this.secondCountry = secondCountry; } }定义一个表单元素进行提交即可
其他两个系统拦截器个人认为不是非常的常用
相关文章推荐
- 基于Struts2拦截器的使用总结
- 个人总结的Struts2拦截器使用和拦截栈的配置,基于注解的方式
- struts2总结三:struts2配置文件struts.xml的简单总结
- Struts2拦截器简单示例
- Struts2拦截器总结
- 6.Struts2拦截器的简单示例
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
- Struts2实现第一个简单拦截器
- 防止未登录用户操作—struts2拦截器简单实现
- struts2拦截器简单例子
- struts2拦截器简单介绍
- Struts学习总结(四)---简单模拟实现Struts2的拦截器
- Struts2拦截器简单示例
- struts2 的简单配置总结
- 【转载】struts2 学习总结 ---- 拦截器(interceptor)
- 简单的利用Struts2拦截器实现权限校验
- Struts2【拦截器】就是这么简单
- Struts2拦截器,简单的用户登录拦截及静态缓存的使用
- Struts2登录拦截器的简单示例
- 经验总结:Struts2原理与简单配置