struts2拦截器的简单总结(3)
来源:互联网 发布:linux 别名 编辑:程序博客网 时间:2024/06/05 05:50
action与servlet API
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 stubthis.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{//分装请求参数 firstCountryprivate String firstCountry;public String getFirstCountry() {return firstCountry;}public void setFirstCountry(String firstCountry) {this.firstCountry = firstCountry;}/** * */private static final long serialVersionUID = 1L;@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.print("firstAction" + firstCountry);return SUCCESS;}@Overridepublic void prepare() throws Exception {// TODO Auto-generated method stubSystem.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;@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("secondAciton" + secondCountry);return SUCCESS;}public String getSecondCountry() {return secondCountry;}public void setSecondCountry(String secondCountry) {this.secondCountry = secondCountry;}}定义一个表单元素进行提交即可
其他两个系统拦截器个人认为不是非常的常用
0 0
- struts2拦截器的简单总结(3)
- Struts2的拦截器总结
- Struts2的拦截器总结
- Struts2的拦截器总结
- Struts2的拦截器总结
- struts2的拦截器的简单使用
- Struts2拦截器总结
- Struts2 拦截器总结
- Struts2拦截器总结
- Struts2拦截器的一个简单应用
- 编写一个简单的Struts2 拦截器
- 最简单的拦截器写法 struts2
- Struts2拦截器的简单示例
- struts2学习-简单的拦截器
- 简单的struts2权限拦截器应用
- Struts2中拦截器的简单实现
- Struts2之拦截器的简单应用
- Struts2登录拦截器的简单示例
- 合并排序
- Caffe 实践 在macOS (版本号10.11) 上安装Caffe
- 对于基本的捕鱼游戏设计思路(六)——碰撞检测
- Spring AOP介绍
- maven命令的操作总结
- struts2拦截器的简单总结(3)
- hdu4405 概率dp
- 车架号VIN码图像识别
- 逻辑回归
- 使用SDWebImage为imageView设置图片,存在的图片大小异常问题
- libgdx 新手引导实现
- poj 1037 经典计数dp+字典序
- fine-tuning:利用已有模型训练其他数据集
- 惠普Z820图形工作站安装WIN7以及出现的问题