Struts2常用标签总结 - OPEN

合集下载

struts2标签大全详解

struts2标签大全详解

详细的说明了struts2所有标签由整理版权属 以及原作者。

由于标签太多难做目录索引,如果你觉得有目录索引更好,请到/p/myjdemo/downloads/list 下载CHM版本的Struts2标签详解,谢谢。

aa标签创建一个HTML超链接,等价于HTML 的<a href=""....示范代码:<s:a href="login.action">登陆</s:a>action使用action标签可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace。

如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来。

action标签的属性:id:可选属性,该属性将会作为该Action的引用IDname:必填属性,指定该标签调用哪个Actionnamespace:可选,指定该标签调用的Action所在的namespace. executeResult:可选,指定是否要将Action的处理结果页面包含到本页面。

默认是false,即不包含ignoreContextParams:可选,它指定该页面中的请求参数是否需要传入调用的Action、默认是false,即将本页的请求参数传入被调用的Action。

下面是本示例应用中的Action类,包含连个处理逻辑。

代码如下public class TagAction extednds ActionSupport{//封装用户请求参数的author属性private String author;//author的get和set的方法,省略……public String execute() throws Exception{return "done";}public String login() throws Exception{ServletActionContext.getRequest().setAttribute("author",getAuthor()); return "done";}}上面的Action类包含两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action类映射成两个逻辑Action。

Struts标签(大全)二

Struts标签(大全)二

当这个select提交时所选择的值将被提交到selectForm(name="selectForm")中的person对象(这是在SelectForm中声明的一个Person类型的域专门用来接收提交的值)的id属性中(property="person.id")。
<html:select property="person.id" size="1">
<html:multibox property="selectedItems"
value="00001"/>
<html:multibox property="selectedItems"
value="00002"/>
下面的代码示例了html:multibox标签的典型用法:
</html:radio>
<ogic:notEmpty>
回页首
html:multibox标签生成多个checkbox。当您要使用大量的checkbox时使用这个标签非常方便,可以使您避免在ActionForm中声明大量的boolean类型的变量,带之以一个数组就行了。
注意:为了正确的处理没有选中的checkbox您必须在reset()中设置数组的长度为0。
下面的代码示例了html:multibox标签的一般用法,如果被提交则选中的所有checkbox的value值将被提交到multiboxForm中的selectedItems中,这是一个String[]数组。
private boolean three = false;

史上最全的struts2标签

史上最全的struts2标签

aa标签创建一个HTML超链接,等价于HTML 的<a href="".... 示范代码:<s:a href="login.action">登陆</s:a>更多 a 信息action使用action标签可以允许在JSP页面中直接调用Action。

范例如下:<s: action name="tag2" executeResult="false" />更多 action 信息actionerror这个标签负责输出错误信息到客户端。

示范代码:Action代码如下:public String execute(){addActionError("第一条错误消息!");addActionError("第二条错误消息!");return SUCCESS;}....JSP中:<s:actionerror/>更多 actionerror 信息actionmessage这个标签负责输出提示信息到客户端,例子如下:Action代码如下:public String execute(){addActionMessage("第一条普通消息!");addActionMessage("第二条普通消息!");return SUCCESS;}JSP:<s:actionmessage />更多 actionmessage 信息append用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。

例子:<s:append id="myAppendIterator"><s:param value="%{myList1}" /><s:param value="%{myList2}" /><s:param value="%{myList3}" /></s:append><s:iterator value="%{#myAppendIterator}"><s:property /></s:iterator>更多 append 信息beanbean标签用于创建一个JavaBean的实例。

Struts2知识点整理

Struts2知识点整理


Struts2配置
struts.properties Struts2.x另一个核心配置文件,它所配置的有效属性有 struts.configuration
• 指定加载Struts2的配置文件的配置管理器,默认是: 指定web应用的默认Locale 指定web应用的默认编码集 指定strus2所需的国际化资源文件,多份时用","分隔。

验证程序配置
根元素<validators> 根元素下可以有任意多个filed和validator 每个filed可以使用多个验证程序 嵌入多个field-validator元素 field-validator元素 必须有一个type属性,指定一个验证程序 可以有一个short-circuit属性

通配符
例子1 <action name="UserAction_*" method="{1}">
• 例如:UserAction_add
例子2 <action name="*_*" class="{1}" method="{2}">
• <result>{1}_{2}_success.jsp</resutl>
• 字段级别
– fieldName=converterClass
xwork-conversion.properties
• 类级别
– 例如:app17.Color=ColorConverter

扩展StrutsTypeConverter类
绝大多数类都需要从String -->非String类型 ,以及从非String-->String

Struts2知识点总结

Struts2知识点总结

Struts2基础知识Struts2概述1.Struts2框架应用javaee三层结构中的web层框架。

2.Struts2框架在struts1和webwork基础之上发展的全新框架。

3.Struts2所解决的问题:在以往实现一个功能时,都需要写很多的servlet,从而造成后期维护上的不方便。

图解:4.现在比较稳定的Struts2版本struts-2.3.24-all.zip5.web层常见框架1.struts2.springMVCStruts2框架入门1.导入jar包1.在lib里面有jar包,但不能全部导入,因为里面含有一些spring包,是不能使用的,导入会导致程序不能运行。

2.到app目录里面复制案例的jar包是最好的方法。

2.创建action3.配置action类的访问路径1.创建struts2核心配置文件,该核心配置文件位置和名称是固定的,位置必须在src下面,名称为struts.xml 。

2.引入dtd约束,可以在案例文件中找到,复制在struts.xml文件中即可。

3.action的配置*注意访问路径:http://域名/端口号/项目名/action名.action注意:.action可以省略,但建议不要省略,为了兼容一些老版本的浏览器。

4.配置Struts2的过滤器,可以在案例中的web.xml文件中找到,复制粘贴即可。

Struts2执行过程图解:Struts2配置1.是一种常量标签2.修改Struts2的默认常量值1.常用方式在struts.xml中进行配置。

2.其它两种方式1.在src下面创建struts.properties文件并修改。

2.在web.xml文件中进行修改。

3.Struts2最常用的常量struts.il8n.encoding=UTF-8,解决表单在通过post方式提交中文时,中文乱码的问题。

Struts2笔记(一)可使用全局页面。

1、配置方法:在package标签下配置2、注意:该标签只能在一个package标签中使用,如果有多个标签,需要重新定义。

Struts2知识小结

Struts2知识小结

Struts2知识点小结Struts Tag Library对于一个MVC框架而言,重点是实现二个部分:控制器部分和视图部分。

Struts2框架同样如此:控制器部分由Action(以及隐藏的系列拦截器)来提供支持,而视图部分则通过大量标签来提供支持。

Struts2标签库使用OGNL表达式作为基础,且默认支持OGNL, JSTL, Groovy和Velcit y表达式。

且把所有标签都定义在URI为/struts-tags 命名空间下,但我们依然可以依据功能将其分为三类:1. UI标签;a. 表单标签;b. 非表单标签;树、Tab页等;2. 非UI标签;a. 流程控制:条件、循环;b. 数据访问:输出ValueStack中的值;3. AJAX标签;Object Graph Navigation Language, 缩写为OGNL,是类似于EL的脚本语言,一. 控制标签Struts2中的非UI标签包括控制标签和数据标签,其中控制标签可以完成输出流程控制,例如条件、循环等操作,也可完成对集合的合并、排序等操作,它有如下九个:1) if: 选择输出;2) elseIf/elseif: 与if标签结合使用;3) else: 与if标签结合使用4) append: 将多个集合拼接成一个新的集合;5) generator: 将一个字符串解析成一个集合;6) iterator: 将集合迭代输出;7) merge: 将多个集合拼接成一个新集合,与append拼接方式不同;8) sort: 对集合进行排序;9) subset: 截取集合部分元素,形成新的子集;1. iterator标签对集合进行迭代,包括List,Set和数组,Map.. value: 可选,被迭代的集合,通常使用OGNL表达式指定,如无,则使用ValueStac k栈顶集合;. id: 可选,指向集合中元素;. status: 可选,指向迭代时IteratorStatus实例,通过该实例可判断当前迭代元素的属性;每次迭代都有一个IteratorStatus实例,该实例包含以下方法:a. int getCount(): 返回当前迭代了几个元素b. int getIndex(): 返回当前迭代元素的索引c. boolean isEven(): 当前索引是否为偶数d. boolean isFirst(): 当前迭代元素是否是第一个元素e. boolean isLast(): 当前迭代元素是否是最后一个元素f. boolean isOdd(): 当前索引是否为奇数2. if标签根据一个Boolean表达式的值,来决定是否计算,输出标签体等内容。

struts2常用标签

struts2常用标签

Struts 1.x与Struts 2.0的标志库(Tag Library)作比较要在JSP中使用Struts1标签,需要先指明标签的引入:<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>……要在JSP中使用Struts2标签,需要先指明标签的引入:<%@ taglib prefix=”s” uri=”/struts-tags”%>非UI标签、UI标签(基于表单的UI标签和其他UI标签)1、非UI标签1)、if\elseif和else执行基本的条件流转例子:<%@ page contentType="text/html; charset=UTF-8" %><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Condition Flow</title></head><body><h3>Condition Flow</h3><s:set name="name" value="<%= "'" + request.getParameter("name") + "'" %>" /> <s:if test="#name == 'Max'">Max's file here</s:if><s:elseif test="#name == 'Scott'">Scott's file here</s:elseif><s:else>Other's file here</s:else></body></html>Iterator2)、iterator用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)例子:<%@ page contentType="text/html; charset=UTF-8" %><%@ page import="java.util.List" %><%@ page import="java.util.ArrayList" %><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%List list = new ArrayList();list.add("Max");list.add("Scott");list.add("Jeffry");list.add("Joe");list.add("Kelvin");request.setAttribute("names", list);%><html><head><title>Iterator</title></head><body><h3>Names: </h3><ol><s:iterator value="#s" status="stuts"><s:if test="#stuts.odd == true"><li>White <s:property /></li></s:if><s:else><li style="background-color:gray"><s:property /></li></s:else></s:iterator></ol></body></html><!--1、此处的空property元素用于获得当前iterator的值2、status被设成stuts,在iterator的里面就可以通过#stuts取得IteratorStatus的对象。

Struts2页面开发中常用标签使用说明

Struts2页面开发中常用标签使用说明

Struts2页面开发中常用标签使用说明2008-07-30 22:561. Struts2页面开发中常用标签使用说明1.1.往action里传值的使用方式:<input name="userName" type="text" class="input6" size="15"> a. userName属性需要在访问的action中提供相应的属性,并有SET/GET 方法。

b. 可以不在访问的action中提供相应的属性,用request.getParameter(“userName”);1.2.显示标签 property 用于输出指定值:<s:property value=" userName "/> 当action返回到指定页面是,可以通过该标签显示action中的属性信息。

(注 userName必须在action 中存在,并有GET方法)。

1.3.往对象中传值<s:textfield> 用于从页面往action中的对象内传值:<s:text name="user. userName " id="username"/>该标签可以在页面中向action中的实体对象内直接传值。

(注:在action中要存在user对象,并有SET/GET方法。

)1.4.判断<s:if> </s:if> 用于在页面中判断指定数据<s:if test="userName == admin">…. </s:if><s:else>…. </s:else>该标签用于对指定的数据进行判断,但指定的数据必须在action中存在。

1.5.迭代<s:iterator>用于将List、Map、ArrayList等集合进行循环遍历<s:iterator value="userList" id="user" status="u"><s:property value="userName"/></a></s:iterator>该标签用于将userList集合中的元素进行循环,用过property进行显示集合中的指定元素值。

Struts2开发总结.doc

Struts2开发总结.doc

Struts2开发总结Struts2项目开发总结(注Struts2版本Struts2.1.6,数据库Oracle9i)所须架包commons-logging-1.0.4.jar、commons-fileupload-1.2.1.jar 、freemarker-2.3.13.jar ognl-2.6.11.jar、struts2-core-2.1.6.jar 、xwork-2.1.2.jar 1、若在前台页面使用orgl表达式必须定义使用{requestScope.count}来获取session中的值2、在jsp页面中显示action中的数据,不需要点击链接到action再返回页面中显示数据第一步,写一个action类第二步配置struts.xml 文件,如/sort1.jsp /error.jsp 第三步在sort1.jsp中遍历action 方法为sort5list的结果集“ 第四步在index.jsp中调用action 为sort5list的方法3、Struts2超链接传参方式第一种“ 第二种Newsquerynew 最新文章第三种直接使用即可注意Struts2超链接标签中的href属性是必选参数,否则在项目整合中可能会出现不明的标签异常。

4、使用Struts2标签循环遍历结果集“ 其中内嵌html 语言,除了value属性外,还有可选属性id“ “ status“status“,value属性是必选的5、格式化日期显示方法或者,只需要改变即可必须定义Body体中引用6、Struts2下拉菜单的使用属性注解name是给Struts2标签取名字,这个也是提交到action并保存到对应的数据库中的字段名所必须得参数;list是下拉选项数值;listKey是选项列表所对应的id,listValue是选项列表每个字段的名称;theme是自定义下拉框格式,headerkey是首选项的主键id,headerValue是首选项的字段名7、Struts2.1.6使用日期控件需要导入包struts2-dojo-plugin-2.1.6.jar 在head体中加入在body体中引用属性注解name是给标签取名,type为date日期类型,displayFormat格式化显示日期,value是获取时间值,value“{ today }“是获取当前系统时间8、Struts2中form提交表单格式在form中加入theme“simple“属性,就不会受Struts2定义格式的影响9、使用属性驱动取值在action中将要输出的属性生成get和set方法,并将返回值定义为返回对象,如private String ntitle;//标题private String ncontent;//内容private String ntime;//时间private String username;//发布人News newsns.queryNnewsdetailsql2nid;//返回一个对象public String getNtitle { return ntitle; } public void setNtitleString ntitle { this.ntitle ntitle; } public String getNcontent { return ncontent; } public void setNcontentString ncontent { this.ncontent ncontent; } public String getNtime { return ntime; } public void setNtimeString ntime { this.ntime ntime; } public String getUsername { return username; } public void setUsernameString username { ername username; } 由action直接跳转到要显示这些属性详细内容的页面在jsp 中直接使用标签取出即可使用模型驱动查改新建action查询文章类型import javax.servlet..opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.txxw.cms.news.model.Ctype; import com.txxw.cms.news.model.CtypeService; /** * author fejd E-maillzd_niit_ * version 创建时间May 22, 2009 14321 PM * 功能实现文章类型修改内容查询*/ public class CtypeeditAction extends ActionSupport implements ModelDriven { private Ctype ctypenew Ctype;//将封装数据的ctype实现get和set方法Override public String execute throws Exception { // TODO Auto-generated method stub] HttpServletRequest requestServletActionContext.getRequest; int ct_idInteger.parseIntrequest.getParameter“ct_id“.replace“,“, ““;//通过选择复选框来实现单个文章类型修改CtypeService csnew CtypeService; Ctype ctypecs.editctypesqlct_id; this.setCtypectype; return “success“; } public Object getModel { // TODO Auto-generated method stub return null; } public Ctype getCtype { return ctype; } public void setCtypeCtype ctype { this.ctype ctype; } } Editctypesql方法如下public Ctype editctypesqlint ct_id throws IOException{ dbconnew DBConnection; condbcon.getCon; Ctype ctynull; List ctylistnewArrayList; try { pstacon.prepareStatementthis.getEditCtypesqlct_id; psta.setInt1, ct_id; rspsta.executeQuery; whilers.next { ctynew Ctype; cty.setCt_idrs.get Int“ct_id“; cty.setCt_namers.getString“ct_name“;cty.setCt_sidrs.getString“ct_sid“; //数据类型Clob转换String 类型START// try { oracle.sql.CLOB cloboracle.sql.CLOBrs.getClob“ct_introduction“;//数据库中存文本的CLOB型字段名String ct_introductionclob.getSubStringlong1,intclob.length;//subStrin g是截取字符串(从1截到length)ifclobnull||ct_introductionnull||ct_introduction““{ return null; } cty.setCt_introductionct_introduction;System.out.printlnct_introduction; }//try catchException e{ logger.debug“数据类型Clob转换String类型出现异常“; “数据类型Clob转换String类型出现异常“;e.printStackTrace; } //数据类型Clob转换String类型END// cty.setCt_imagers.getString“ct_image“; ctylist.addcty; } } catch SQLException e { // TODO Auto-generated catch block e.printStackTrace; } return cty; } public String getEditCtypesqlint ct_id { this.editCtypesql“select *from system.ctype where ct_id“; return editCtypesql; } public voidsetEditCtypesqlString editCtypesql { this.editCtypesql editCtypesql; } 注明上述方法中涉及到Oracle数据类型Clob 转换成String类型问题在jsp中使用即可取出ctype中的数据。

struts2总结

struts2总结

Struts2总结1.struts2工作原理:1.服务器端提交请求,容器初始化HttpServletRequest对象2.请求的对象被FilterDispatcher过滤器过滤,FilterDispatcher调用ActionMapper,决定请求是否需要调用某个Action3.如果需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy(Action代理)ActionProxy通过Configuration Manager解析框架的配置文件,找到需要调用的Action 4.Action调用业务逻辑类完成业务逻辑。

在调用Action前后,将调用该Action涉及到的相关拦截器(Interceptor)5.Action执行完毕,ActionInvocation根据struts.xml中的配置找到对应的返回结果(被称为Result)。

返回结果通常是Jsp2.过滤器的配置:<filter><filter-name>FilterDispatcher</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>FilterDispatcher</filter-name><url-pattern>/*</url-pattern></filter-mapping>3.action的写法:1.Action类不需要继承或实现任何父类或接口,2.如果该Action类是通过表单提交调用,且Action类中需要使用表单提交的请求参数,则必须在Action类中声明与表单域的名字对应的变量,并提供getters/setters方法例如:private String name;private int age;public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}3.Action类中必须有一个public String execute(){}方法,该方法将被自动调用,实现控制逻辑,但是可以通过配置修改方法名3.Action的配置:<struts><package name="primer"namespace="/primer"extends="struts-default"><action name="helloWorldAction"class="cn.itcast.primer.HelloWorldAction"><result name="success">/primer/success.jsp</result> </action></package></struts>各个位置的内容解释:<struts><!-- /primer/helloWorldAction.actionpackage:包* name:包名,唯一的,必选项* namespace:命名空间,唯一的,相当于房间号。

struts标签

struts标签

<h3>获取application中的对象的值</h3>
第一种方式:<s:property value="#er1.realName"/>
<br/>
第二种方式:<s:property value="#er1['realName']"/>
<br/>
第三种方式:<s:property value="#user1.realName"/>
<br/>
第四种方式:<s:property value="#user1['realName']"/>
<br/>
第五种方式:${er1.realName } || ${er1['realName'] }
<font color="red"><s:property value="#ent" />
</font>
</s:if>
<s:else>
<s:property value="#ent" />
</s:else>
</s:iterator>
第二种:map集合中的使用
<br/>
第二种方式:<s:property value="#er1['realName']"/>
第五种方式:${er1.realName } || ${er1['realName'] }

struts2,标签,表格

struts2,标签,表格

竭诚为您提供优质文档/双击可除struts2,标签,表格篇一:struts2常用标签总结struts2常用标签总结一介绍1.struts2的作用struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。

实现了更好的代码复用。

struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。

struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。

包括最常用的jsp页面,也可以说Velocity和Freemarker等模板技术中的使用2.struts2分类(1)ui标签:(userinterface,用户界面)标签,主要用于生成html元素标签,ui标签又可分为表单标签非表单标签(2)非ui标签,主要用于数据访问,逻辑控制等的标签。

非ui标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出Valuestack中的值,完成国际化等功能的)(3)ajax标签3.struts2标签使用前的准备:(1)在要使用标签的jsp页面引入标签库:(2)在web.xml中声明要使用的标签这样是struts22.3.1.2版本的引入方式struts2org.apache.struts2.dispatcher.ng.filter.strutsprepa reandexecuteFilter4.标签的使用(1)property标签用于输出指定的值:以-->以上可以访问某一个包的类的属性的集中方式,study()是访问方法的方法,并输出。

以下用java代码代替的,访问某一个范围内的属性//采用pagecontext对象往page范围内存入值来验证#attr搜索顺序是从page开始的,搜索的顺序为:page,reques,session,application。

Struts2知识点总结

Struts2知识点总结

1.struts2 步骤1.创建web项目2.添加struts2的必须jar包3.添加支持(配置web.xml文件)4.创建界面和相应的action5.配置struts.xml文件6.部署运行项目2.struts2的工作流程1. 浏览器发送一个请求。

2. 核心控制器FilterDispatcher根据请求决定调用合适的Action。

3. 拦截器(Intercepter)自动对请求应用通用功能,如验证等。

4. 回调Action的execute方法,该execute方法根据请求的参数来执行一定的操作。

5. Action的execute方法处理结果信息将被输出到浏览器中,支持多种形式的视图。

3.struts2的配置文件1.web.xml2.struts.xml(核心管理Action映射) 自己配置的3.struts-default.xml是struts2框架默认加载的配置文件。

它定义struts2一些核心的bean和拦截器。

这些拦截器是以key-value对的形式配置在struts-default.xml中,其中name是拦截器名字,就是后面使用该拦截器的引用点,value则指定拦截器的实现类。

4.struts.properties(核心管理属性) 自己配置的5.default.properties(核心管理属性)4.<struts>标签下的子标签配置1.<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts"class="org.apache.struts2.impl.StrutsObjectFactory" />2.<include file="struts1.xml"></include>3.<constant name=“key” value=“value” />4.<package></package>5.package标签下的配置1.<action name="loginAction" class="com.action.loginAction"><result name="success">/welcome.jsp</result><result name="error">/index.jsp</result></action>2.<global-results><result></result></global-results>3.<global-exception-mappings><exception-mapping result="error"exception="java.long.Exception"></exception-mapping></global-exception-mappings>……………………………………6.action类实现Action接口和继承ActionSupport7.通过ActionContext类获得context(request),再通过context获得session和application context.put("key","value");session.put("key","value");session.put("key","value");public class ServletActionContext (org.apache.struts2)public static PageContext getPageContext()public static HttpServletRequest getRequest()public static HttpServletResponse getResponse()public static ServletContext getServletContext()8.在action中直接使用一个对象,两种方式:1.在提交表单时name属性为:对象.xxxx2.实现ModelDriven<类类型>接口和其方法。

Struts2知识点总结报告

Struts2知识点总结报告

1.简介Struts 2是Struts 的下一代产品,是在 struts 1和WebWork 的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

Struts 2以WebWork 为核心,采用拦截器的机制来处理用户的请求,2.Struts2处理流程3.Struts2基础<include >可以把struts 配置分为相应的struts.xml 文件<package >中的属性namespace 可以把action 分包,用来解决不同项目的同名action <action>中的method 属性决定action 调用action 业务类的那个方法,根据方法的返回值跳到名字队对应的result 结果集中除了Metnod 调用指定的方法为还有一种动态调用1.在请求的页面就指定调用的action 名称及方法,语法:actionName!methodName.action,action 可以省略,2.在<action>使用通配符, <action name=”house_*”>....<result >其名字可以自行定义,根据业务类返回的值,对应相应的result 官方定义的有success,login,error,input 等其中的type 属性可以决定转向类型,默认的是dispatcher(转发)其他前端控制器 StrutsPreparedAndExec uteFilter 拦截用户请求 用户请求 Action 业务处理,处理请求,返回处理结果 根据请求的url 找到action 返回处理结果 Jsp 页面 渲染结果结果数据传递给jsp 处理后的html 响应用户的是redirect,请求重定向的指定的URL,redirectAction重定向到指定的Action,chain:将请求转发到指定的Action,json返回JSON对象如果result的内容不是一个具体的jsp页面而是${}形式的这就是动态结果的配置,就是结果页面在配置是不能确定,需要在运行时才能确定,比如管理员和普通用户登录,详细的动态结果配置详见资料Action类实现的方法有三种1.继承ActionSupport (常用)2.实现Action接口3.自己编写方法Action接收参数1属性方式接收参数,2Javabean方式接收参数(常用)3.moderlDriven方式接收参数Struts2访问servletAPI的方法在jsp课程中,服务器保存数据的作用域通常有request,session,application,他们对应的servletAPI 分别是HttpServletRequest,HttpSession,servletContext,同样在struts2控制器(action)中也需要访问这些作用域,有三种方法1.使用ActionContext类提供的方法2.以依然注入(IoC)方式访问,实现响应的接口即可3.使用以耦合方式使用ServletActionContext类访问OGNL与struts标签引入的标签指令<%@taglib uri="/struts-tags" prefix="s"%>理解值栈(存储action属性的地方)和stackcontext(存储request,session的地方)概念,并且使用<s:debug>查看值栈访问的值OGNL访问集合知识点,不常用字符串转换OGNL表达式用户%{}相反的加’’单引号Struts2标签可分为通用标签,控制标签,Ajax标签通用标签又分为数据标签和控制标签数据标签:<s:property><s:debug><s:date><s:set><s:url>和<s:a><s:param><s:include>控制标签<s:if>,<s:elseif><s:else><s:iterator>UI标签理解模板与主题,模板用于生成HTML代码,共同风格和观感的模板组织到一起就成了一个主题,内建的主题有simple,xhtml,css_xhtml(默认),css_xhtml,ajax主题的更改用标签属性theme=”simple”标签:<s:form><s:textfield><s:textarea><s:submit><s:select><s:doubleselect>下拉列框和联动列框属性及实现参观相关代码Ajax标签Datetimepicker是一个日历控件导入相应的包引入<%@taglib uri="/struts-dojo-tags" prefix="sx"%>指令在<head>中添加<sx:head parseContent="true"/>添加标签<sx:datetimepicker name="timer" label="发布时间"/>4.数据校验数据校验分为客户端验证和服务器端验证,sruts2对服务器端的验证有两种,1.使用actionsupport编码实现验证2.使用验证框架实现验证,使用actionsupport编码进行验证的方法有三种,1.直接在action类业务方法中验证,2.重写validate()方法实现验证,3.使用validateXXX()方法实现验证验证的关键点在于当用户名或密码没填写时添加addFieldError()方法,此方法处理与字段相关的错误,比如输入的年龄不合理,响应的jsp输出错误的标签是<s:fielderror fieldname=”/>, addActionError()方法是用来添加与action所处理的业务相关的错误信息,在JSP输出错误的标签是<s:actionerror>如果两种情况有任何一种错误(hasErrors())就return到INPUT结果集中(事先已经配置好) 使用验证框架使用特定的配置框架即可,命名的前半部分是action 的名字,可对全局和局部进行验证!具体查看相关资料5.拦截器拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。

struts2常用标签详解

struts2常用标签详解

struts2标签详解A:<s:a xhref=""></s:a>-----超链接,类似于html里的<a></a><s:action name=""></s:action>-----执行一个view里面的一个action<s:actionerror/>-----如果action的errors有值那么显示出来<s:actionmessage/>-----如果action的message有值那么显示出来<s:append></s:append>-----添加一个值到list,类似于list.add();<s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajaxB:<s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值C:<s:checkbox></s:checkbox>-----复选框<s:checkboxlist list=""></s:checkboxlist>-----多选框<s:combobox list=""></s:combobox>-----下拉框<s:component></s:component>-----图像符号D:<s:date/>-----获取日期格式<s:datetimepicker></s:datetimepicker>-----日期输入框<s:debug></s:debug>-----显示错误信息<s:div></s:div>-----表示一个块,类似于html的<div></div><s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框E:<s:if test="#name=‟hujianqiang‟">asdfasdf</s:if><s:elseif test=""></s:elseif><s:else></s:else>-----这3个标签一起使用,表示条件判断F:<s:fielderror></s:fielderror>-----显示文件错误信息<s:file></s:file>-----文件上传<s:form action=""></s:form>-----获取相应form的值G:<s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用H:<s:head/>-----在<head></head>里使用,表示头文件结束<s:hidden></s:hidden>-----隐藏值I:<s:i18n name=""></s:i18n>-----加载资源包到值堆栈<s:include value=""></s:include>-----包含一个输出,servlet或jsp页面<s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输入<s:iterator></s:iterator>-----用于遍历集合L:<s:label></s:label>-----只读的标签M:<s:merge></s:merge>-----合并遍历集合出来的值O:<s:optgroup></s:optgroup>-----获取标签组<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择框P:<s:param></s:param>-----为其他标签提供参数<s:password></s:password>-----密码输入框<s:property/>-----得到'value'的属性<s:push value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性R:<s:radio list=""></s:radio>-----单选按钮<s:reset></s:reset>-----重置按钮S:<s:select list=""></s:select>-----单选框<s:set name=""></s:set>-----赋予变量一个特定范围内的值<s:sort comparator=""></s:sort>-----通过属性给list分类<s:submit></s:submit>-----提交按钮<s:subset></s:subset>-----为遍历集合输出子集T:<s:tabbedPanel id=""></s:tabbedPanel>-----表格框<s:table></s:table>-----表格<s:text name=""></s:text>-----I18n文本信息<s:textarea></s:textarea>-----文本域输入框<s:textfield></s:textfield>-----文本输入框<s:token></s:token>-----拦截器<s:tree></s:tree>-----树<s:treenode label=""></s:treenode>-----树的结构U:<s:updownselect list=""></s:updownselect>-----多选择框<s:url></s:url>-----创建urlStruts2常用的Ajax标签Struts2为了简化Ajax过程,提供了一些常用的Ajax标签,对于一些更复杂的Ajax通信过程,我们可以使用JSON插件来实现。

struts2常用表单标签

struts2常用表单标签
<sx:head parseContent="true"/>
</head>
4.页面中使用
<sx:datetimepicker name="birthday" lable="请求时间" displayFormat="yy-MM-dd" />
doubleselect标签
{
return this.author;
}
}
package lee;
public class BookService
{
public Book[] getBooks()
{
return new Book[]
{
new Book("Spring2.0","李"),
除了这些属性之外,所有的表单元素标签都存在一个特殊的属性:form,这个属性引用表单元素所在的表单,通过该form属性,可以实现表单元素和表单之间的交互。例如,我们可以通过${parameters.form.id}来取得表单元素所在表单的ID。表单标签的通用属性有以下几类:
1,模板相关的通用属性:#34;J2EE","李"),
new Book("Ajax","李")
};
}
}
combobox标签
combobox标签生成一个单行文本框和下拉列表框的结合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name属性,也就不会产生请求参数。使用该标签时,需要指定一个list属性,该list属性指定的集合将用于生成列表框。例子如下:

struts2标签库详解

struts2标签库详解

Struts2标签库详解(1):<s:textfield> ---- 文本输入框?使用:<s:textfield name=”实体Bean。

属性”></s:textfield>?(2):<s:textarea> ----- 文本域输入框?使用:<s:textarea name=”实体Bean。

属性”></s:textarea>?(3):<s:password> ----- 密码输入框?使用:<s:password name=”实体Bean。

属性”></s:password>?前三个基本都是一样的。

如果是要显示值的话可以这样:value = “实体Bean。

Get***()”。

?(4):<s:radio list=””> ---- 单选按钮?使用:<s:radio list=””>其中list 属性是必须要有的。

?<1>:第一种方式:list = “#{‘male’:’男’,’female’:’女’}”?<2>:第二中方式:list = “#request/session.list”。

---- 与action结合起来了。

?如果要默认选中的话后面加上value = “”.也可以通过javascript的方式来默认选中。

?(5):<s:url/> --- url连接?<s:a/> --- 超链接?这两个标签一般结合起来来使用。

?使用:<s:url id = “id” action = “userAction”/><s:a href=”%{id}”/>?(6):<s:form/> --- 获取相应form的值?使用:?<1>:<s:form action = “userAction”>?<2>:<s:url id=”userId” action = “userAction”> -- 定义了一个userId的指向userActionde 路径? <s:form action=”%{userId}”>?(7):<s:submit/> ---- 提交标签?(8):<s:reset/> ---- 重置标签?(9):<s:hidden/> ---- 隐藏域标签?使用:<s:hidden name=”实体Bean。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
</s:elseif>
<s:else>
都不等
</s:else>
<s:set name="list" value="{'zhangming','xiaoi','liming'}" />
<s:iterator value="#list" status="st">
<font color=<s:if test="#st.odd">red</s:if><s:else>blue</s:else>>
<%@ taglib uri="/struts-tags" prefix="s"%>
(2)在web.xml中声明要使用的标签 这样是struts2 2.3.1.2版本的引入方式
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
boolean isLast(),返回当前被迭代元素是否是最后一个元素。
(3)if else语句的使用
<s:set name="age" value="21" />
<s:if test="#age==23">
23
</s:if>
<s:elseif test="#age==21">
第六种:<s:property value="#er1.realName"/>
attr对象按page==> request sessionapplictio找的
<h3>获取session中的值</h3>
第一种方式:<s:property value="#er1.realName"/>
<h3>获取application中的对象的值</h3>
第一种方式:<s:property value="#er1.realName"/>
<br/>
第二种方式:<s:property value="#er1['realName']"/>
<s:property value="%{@er@study()}"/>
以上可以访问某一个包的类的属性的集中方式,study()是访问方法的方法,并输出。
以下用java代码代替的,访问某一个范围内的属性
<%
</filter>
4.标签的使用
(1)property标签
用于输出指定的值:
<s:property value="%{@er@Name}"/><br/>
<s:property value="@er@Name"/><Br/><!-- 以上两种方法都可以 -->
Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。包括最常用的jsp页面,也可以说Velocity和FreeMarker等模板技术中的使用
2.Struts2分类
(1)UI标签:(User Interface, 用户界面)标签,主要用于生成HTML元素标签,UI标签又可分为表单标签非表单标签
<s:property value="price"/>
</s:iterator>
</div>
注:users是User的对象,price是User中的一个属性
简述一下iterator的介绍:
iterator标签用于对集合进行迭代,这里的集合包含List、Set和数组。
<s:property /></font><br>
</s:iterator>
value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。
id:可选属性,指定集合里元素的id。
status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:
Struts2常用标签总结
一 介绍
1.Struts2的作用
Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。
<s:if test="%{#user['price']>3000}">
<s:property value="#user['price']"/>
</s:if>
</s:iterator>
pageContext.setAttribute("name", "laoowang", PageContext.PAGE_SCOPE);
%>
<s:property value="#" />
假设在action中设置了不同作用域的类
不同的作用域的标签的访问: <h3>获取的是request中的对象值</h3>
第一种方式:<s:property value="#er1.realName"/>
<br/>
第二种方式:<s:property value="#er1['realName']"/>
<br/>
<Br />
</s:iterator>\
第三种:集合的变量
<h3>遍历集合:::</h3>
<div>
<!-- 遍历出价格大于3000的 -->
<s:iterator var="user" value="#session['users']">
第三种方式:<s:property value="#user1.realName"/>
<br/>
第四种方式:<s:property value="#user1['realName']"/>
<br/>
第五种方式:${er1.realName } || ${er1['realName'] }
int getCount(),返回当前迭代了几个元素。
int getIndex(),返回当前迭代元素的索引。
boolean isEven(),返回当前被迭代元素的索引是否是偶数
boolean isOdd(),返回当前被迭代元素的索引是否是奇数
boolean isFirst(),返回当前被迭代元素是否是第一个元素。
<font color="red"><s:property value="#ent" />
</font>
</s:if>
<s:else>
<s:property value="#ent" />
(2)非UI标签,主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出ValueStack中的值,完成国际化等功能的)
(3)ajax标签
3.Struts2标签使用前的准备:
(1)在要使用标签的jsp页面引入标签库:
<!-- status 可选属性,该属性指定迭代时的IteratorStatus实例 -->
<!-- value="#attr.list" list存放到了request中 可以value="#request.list"
statu.odd返回当前被迭代元素的索引是否是奇数
</s:else>
</s:iterator>
第二种:map集合中的使用
<h3>Map集合</h3>
<!-- map集合的特点:
语法格式:# {key:value,key1:value1,key2:value2,.....}
-->
<s:set name="list" value="{'a','b','c','d'}"></s:set>
相关文档
最新文档