struts2标签使用实例

合集下载

struts2 global-allowed-methods的用法

struts2 global-allowed-methods的用法

struts2 global-allowed-methods的用法Struts2中的`global-allowed-methods`是一个全局配置属性,用于限制或允许用户使用的HTTP方法。

该属性可以在`struts.xml`配置文件中的`<constant>`元素中设置。

以下是`global-allowed-methods`属性的用法示例:1. 允许所有的HTTP方法:```xml<constant name="struts.enable.DynamicMethodInvocation" value="false" /><constant name="struts.mapper.allowMethods" value="*" />```2. 允许GET和POST方法:```xml<constant name="struts.enable.DynamicMethodInvocation" value="false" /><constant name="struts.mapper.allowMethods"value="GET,POST" />```3. 禁止所有的HTTP方法:```xml<constant name="struts.enable.DynamicMethodInvocation" value="false" /><constant name="struts.mapper.allowMethods" value="" />```在上述示例中,`struts.enable.DynamicMethodInvocation`属性设置为`false`,表示禁用动态方法调用。

struts2中iterator标签的相关使用

struts2中iterator标签的相关使用
6)、最后再来看下在iterator中调用value ቤተ መጻሕፍቲ ባይዱtack的用法。
假定countries是一个List对象,每一个country有一个name属性和一个citys List对象,并且每一个city也有一个name属性 。那么我们想要在迭代cities是访问countries的name属性就的用如下方式:
index : int - 返回当前迭代位置的编号(从0开始)
first : boolean - 如果当前迭代位置是第一位时返回true
last : boolean - 如果当前迭代位置是最后一位时返回true
modulus(operand : int) : int - 返回当前计数(从1开始)与指定操作数的模数
<!--奇数行显示为红色,偶数行显示为绿色-->
<s:iterator value="days" status="offset">
<s:else>
<s:if test="#offset.odd==true">
<li style="color: red" mce_style="color: red"><s:property /></li>
struts2中iterator标签的相关使用
English Title:(Turn) of label of the Iterator in Struts2 relevant use
在说明s:iterator标签的使用前,先了解下struts2中的Value Stack。这里参考了webwork中对Value Stack的描述,由于struts2是在webwork的基础上进行升级的,因此webwork对于Value Stack的表述同样适用于struts2。在这里不描述Value Stack具体做什么,但有两点需要注意:

Struts2中的s标签 API Java Struts 程序开发

Struts2中的s标签 API Java Struts 程序开发
7. <s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajax
B:
1. <s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值
C:
R:
1.
2. <s:radio list=""></s:radio>-----单选按钮
3. <s:reset></s:reset>-----重置按钮
S:
1. <s:select list=""></s:select>-----单选框
2. <s:set name=""></s:set>-----赋予变量一个特定范围内的值
4. <s:iterator></s:iterator>-----用于遍历集合
L:
1. <s:label></s:label>-----只读的标签
M:
1. <s:merge></s:merge>-----合并遍历集合出来的值
O:
数据标签:
action:直接调用一个Action,根据executeResult参数,可以将Action的处理结果包含到页面中。
bean:创建一个JavaBean实例。。
date:格式化输出一个日期属性。
debug:生成一个调试链接,当单击该链接时,可以看到当前栈值中的内容。

Struts2教程2:处理一个form多个submit

Struts2教程2:处理一个form多个submit

在很多Web应用中,为了完成不同的工作,一个HTML form标签中可能有两个或多个submit 按钮,如下面的代码所示:<!--[if !supportLineBreakNewLine]--><ht ml action="" method="post"><input type="submit" value="保存"/><input type="submit" value="打印"/></ht ml>由于在<form>中的多个提交按钮都向一个action提交,使用Struts2 Action的execute 方法就无法判断用户点击了哪一个提交按钮。

如果大家使用过Struts1.x就会知道在Struts1.2.9之前的版本需要使用一个LookupDispatchAction动作来处理含有多个submit 的form。

但使用LookupDispatchAction动作需要访问属性文件,还需要映射,比较麻烦。

从Struts1.2.9开始,加入了一个Event DispatchAction动作。

这个类可以通过java反射来调用通过request参数指定的动作(实际上只是判断某个请求参数是不存在,如果存在,就调用在action类中和这个参数同名的方法)。

使用EventDispatchAction必须将submit的name 属性指定不同的值以区分每个submit。

而在Struts2中将更容易实现这个功能。

当然,我们也可以模拟Event DispatchAction的方法通过request获得和处理参数信息。

但这样比较麻烦。

在Struts2中提供了另外一种方法,使得无需要配置可以在同一个action类中执行不同的方法(默认执行的是execute方法)。

struts2中日期控件的用法

struts2中日期控件的用法

日期搞定了,但是如果有2个日期,它们怎么比较呢?
js代码:
var a = dojo.widget.byId("id_form_orderDate").inputNode.value;
var b = dojo.widget.byId("id_form_orderDateEnd").inputNode.value;
struts2日期标签小结
想使用struts2的日期标签
首先需要在<head></head>里加上<s:head/>
否则不会引用日期控件需要调用的javascript
先说说<s:date>的用法:
<s:date name="orderDate" format="yyyy-MM-dd" />
就是吧orderDate的值,格式化为yyyy-MM-dd
name就不解释了;
language是下拉日期的语言,如果你是中文环境那默认就是zh,因为我这里涉及到多语言,所以为了统一就设置成en;
type是类型,日期是date,时间是time;
displayFormat不用解释也知道是格式化日期格式;
value是设置的值,我这里设置的是today,默认显示服务器当前日期,还能设置成什么目前还不知道。
如果你用<s:property value="orderDate" />来取值,显示的就是yy-MM-dd
再来说说<s:datetimepicker>的用法:
<s:datetimepicker name="form.orderDate" language="en" type="date" displayFormat="yyyy-MM-dd" value="today" />

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。

struts2-convention-plugin_注解使用说明_概述及解释说明

struts2-convention-plugin_注解使用说明_概述及解释说明

struts2-convention-plugin 注解使用说明概述及解释说明1. 引言1.1 概述在现代的Web开发中,Struts2作为一个成熟稳定的Java Web框架,在业界得到广泛应用和认可。

而struts2-convention-plugin则是Struts2框架中一个重要的插件,它通过引入注解的方式来简化配置文件,并提供了一种更便捷、高效的开发方式。

1.2 文章结构本文将详细介绍struts2-convention-plugin的注解使用说明,并以概述、注解说明、使用示例等部分来逐步讲解。

接着,我们将对其进行解释说明,包括与传统struts.xml配置方式的比较、使用时需要注意的事项以及实际应用案例。

最后,我们将总结文章要点并给出对于注解方式的评价和展望。

1.3 目的本文旨在帮助读者更好地理解和掌握struts2-convention-plugin插件中注解的使用方法。

通过本文介绍和示例演示,读者将能够快速上手并灵活运用该插件,从而提高开发效率和代码质量。

以上是“1. 引言”部分内容,请根据需要进行修改和补充。

2. struts2-convention-plugin 注解使用说明:2.1 概述:struts2-convention-plugin 是Struts2 框架中的一个插件,它提供了一种基于注解的方式来配置和管理Action 类。

通过使用这个插件,我们可以简化传统的XML 配置文件,并且能够更加便捷地进行开发。

2.2 注解说明:struts2-convention-plugin 提供了一系列的注解,用于配置和定义Action 类及其相关属性和方法。

以下是常用的几个注解:- @Action:用于标识一个方法作为Action 的入口方法,可以指定URL 映射及HTTP 请求类型。

- @Result:用于指定一个结果视图,可以定义对应的视图页面、重定向操作等。

- @Param:用于将请求参数绑定到Action 类的属性上。

Struts2简单示例

Struts2简单示例

Struts2增删改查例子UserBean//要添加set,getpublic class UserBean{private Long id;private String name;private String password;private int age;private Date birthday;private Long sex;private Set<Long> likes;private String des;//描述}public class LikeBean{private Long id;private String name;}FormActionpublic class FormAction{//属性要生成get,set//标记(添加,修改)private String tip;private UserBean userBean;private List<LikeBean> likeList;private List<UserBean> userList;//到列表页面public String list(){userList =new ArrayList<UserBean>();userList.add(new UserBean("abc",19,new Date())); userList.add(new UserBean("def",70,new Date())); userList.add(new UserBean("ghi",40,new Date()));return"list";}//到添加页面public String toAdd(){likeList =new ArrayList<LikeBean>();likeList.add(new LikeBean(new Long(1),"上网")); likeList.add(new LikeBean(new Long(2),"读书")); likeList.add(new LikeBean(new Long(3),"游戏"));tip ="add";return"info";}//添加方法,Struts2会自动把对应的值赋值给userBeanpublic String add(){System.out.println(userBean);return"toList";}//到更新页面,取出值,设置标记public String toUpdate(){likeList =new ArrayList<LikeBean>();likeList.add(new LikeBean(new Long(1),"上网"));likeList.add(new LikeBean(new Long(2),"读书"));likeList.add(new LikeBean(new Long(3),"游戏"));tip ="update";System.out.println("update name:"+userBean.getName()); userBean =new UserBean("update",100,new Date());userBean.setId(new Long(101));userBean.setSex(new Long(2));userBean.setDes("Struts2用户");Set<Long> likes =new HashSet<Long>();likes.add(new Long(2));likes.add(new Long(3));userBean.setLikes(likes);return"info";}//更新方法public String update(){System.out.println(userBean);return"toList";}//删除方法public String delete(){System.out.println("del name:"+userBean.getName());return"toList";}}struts.xml配置<struts><package name="form"namespace="/form"extends="struts-default"> <!-- 使用通配符调用多个方法,method为*对应的字符串 --><action name="userAction_*"class="com.struts2.form.FormAction" method="{1}"><!-- 方法返回的字符串对应name,再转发到页面 --><result name="list">/form/list.jsp</result><result name="info">/form/info.jsp</result><!-- 重定向Action,可以有Action名字和空间,参数 --><result name="toList"type="redirectAction"><!-- 空间参数,不写代表和当前Action同一个空间<param name="namespace">form</param>--><!-- 重定向Action的名称 --><param name="actionName">userAction_list</param><!-- url带的参数,${}是动态参数,值为Action的属性userBean中name的值 --><param name="userName">${}</param><param name="userAge">${userBean.age}</param></result></action></package></struts>jsp页面1.list(列表页面)<!-- 添加标签 --><%@ taglib prefix="s" uri="/struts-tags" %><div><ahref="${pageContext.request.contextPath}/form/userAction_toAdd.action">添加</a></div><div><!-- 判断用户是否为空 --><s:if test="(userList!=null)&&(!userList.isEmpty())"><div>用户列表</div><!-- 遍历用户 --><s:iterator value="#erList"id="u"status="st"><s:property value="#st.index+1"/>&nbsp;<s:property value="#"/>&nbsp;<s:property value="#u.age"/>&nbsp;<!-- 格式化日期 --><s:date name="#u.birthday"format="yyyy-MM-dd HH:mm:ss"/>&nbsp;&nbsp;&nbsp;&nbsp;<ahref="${pageContext.request.contextPath}/form/userAction_toUpdate.action?use=${}">修改</a>&nbsp;&nbsp;&nbsp;&nbsp;<ahref="${pageContext.request.contextPath}/form/userAction_delete.action?userB =${}">删除</a><br/></s:iterator></s:if><s:else><div>无用户</div></s:else></div>.jsp(添加和修改页面)<!-- 添加标签 --><%@ taglib prefix="s" uri="/struts-tags" %><!-- 显示标记(添加/修改) --><s:property value="tip"/><!-- action="userAction_%{tip}"tip为Action中的标记变量 submit不加method --><s:form action="userAction"namespace="/form"method="POST"><!-- userBean.id为Action中属性userBean中id的值 --><s:hidden name="userBean.id"></s:hidden><s:textfield name=""label="用户名"></s:textfield><s:textfield name="userBean.age"label="年龄"></s:textfield><s:textfield name="userBean.birthday"label="生日"><!-- 格式化日期 --><s:param name="value"><s:date name="userBean.birthday" format="yyyy-MM-dd"/></s:param></s:textfield><!-- 密码不能回填 --><s:password name="userBean.password"label="密码"></s:password><s:textarea name="userBean.des"label="描述"cols="35"rows="8"></s:textarea><!-- 这种checkbox显示出来是一行只有一个checkbox<s:iterator value="likeList"><s:checkbox name="userBean.likes" label="%{name}" fieldValue="%{id}"></s:checkbox></s:iterator>--><!-- 这种是一行多个 --><s:checkboxlist list="likeList"name="userBean.likes"listKey="id"listValue="name"label="爱好"></s:checkboxlist><!-- 下拉框<s:select list="likeList" listKey="id" listValue="name" headerKey="-1" headerValue="请选择爱好"></s:select>--><!-- value="1" 设置默认,但是好像设置了不能回填 --><s:radio list="#{'1':'男','2':'女'}"label="性别"name="userBean.sex"></s:radio><s:submit value="%{tip}"id="submitBut"method="%{tip}"></s:submit></s:form>。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts2中数据标签使用示例S truts2提供了大量丰富的标签供使用,它不再像S truts1中一样,将种类标签进行分门列别,但可以根据其使用的用途用以区别。

本文通过对S truts2中数据标签的学习,来对S truts2中标签的学习起到一个抛砖引玉的作用。

文中将介绍Action标签、Bean标签、Data标签、Include标签、P aram标签、Set标签、T ext标签、P roperty 标签等标签。

代码下载:/y1ps2Mjpc3NiLKuetMOpCsZOOypD6KSdo8-46Zy2wpoMcABeo4vOC NJXtWDEO93-TXgZogwAF YxSOni5BEG2EoN65OFwHdG71v-/St ruts2DataTags.rar?download一、<s:action>标签Action标签,顾名思义,是用来调用Action的标签,在JSP中页面中,可以指向具体指定某一命名空间中的某一Action。

而标签的主体用于显示及渲染Actionr的处理结果。

1.WebRoot\pages\dataTagssuccess.jsp处理页面<%@ page contentType="text/htm l; charset=GBK" %><%@ taglib prefix="s" uri="/struts-tags" %><ht m l><head><title>Action Tag 示例</title></head><body><h2>Action Tag 示例</h2><s:action nam e="success"><b><i>s:action标签用于在页面显示结果.</i></b></div></s:action></body></html>这里使用<s:action>标签进行页面跳转,并用于显示处理的结果。

2.先来看st ruts.xml中的配置:<action nam e="actionTag" class="com.sterning.actionTag"><result nam e="success">/pages/dataTags/success.jsp</result> </action>3.接着创建actionTag类:代码如下:package com.sterning;im port com.opensym phony.xwork2.ActionSupport; publicclass actionTag ex tends ActionSupport { public String execute() throws Ex ception{returnSUCCESS;}}其实该类中没有做任何处理,只是进行页面跳转而已。

4.运行效果。

图1.<s:action>标签二、<s:bean>标签Bean标签,当然需要一个JavaBean。

其的属性值的操作是经由Bean标签中的参数属性来进行赋值。

当然,它还有一个id属性可以进行赋值,由于就可以在上下文中使用这个Bean。

请看如下的页面:1.WebRoot\pages\dataTags\beanT ag.jsp,代码如下:<%@ page contentType="text/htm l; charset=GBK" %><%@ taglib prefix="s" uri="/struts-tags" %><ht m l><head><title>Bean Tag 示例</ti tle></head><body><h2>Bean Tag 示例</h2><s:bean nam e=" panyNam e"id="uid"><s:param nam e="nam e">sterning</s:param><s:property value="%{nam e}"/><br></s:bean></body></html>可参其关联的JavaBean是panyName,同时参数name赋值为st erning。

2.首先创建Action进行跳转,src\com\st erning\beanTag.java,代码如下:package com.sterning;im port com.opensym phony.xwork2.ActionSupport;public class beanTag ex tends ActionSupport {public String execute() throws Ex ception{return SUCCESS;}}然后创建JavaBean,src\com\st erning\companyName.java,代码如下:package com.sterning;public class com panyNam e {private String nam e;public void setNam e(String nam e){this.nam e =nam e ;}public String getNam e(){return nam e;}}3.Struts.xml的配置这里配置很简单,与前面的例子差不多。

<action nam e="beanTag" class="com.sterning.beanTag"><result nam e="success">/pages/dataTags/beanTag.jsp</resul t></action>4.运行效果图2.<s:bean>标签三、<s:date>标签Dat a标签方便在页面进行格式化的日期输出。

格式有多种可供选择。

同时,还可以通过在properties属性文件中定义好”struts.date.format”参数的值,从而自定义格式输出。

Dat e标签包含三个属性,可以从下面的代码中感受一下,分别是:●Name:●Nice●Format1.WebRoot\pages\dataTags\dat eT ag.jsp<%@ page contentType="text/htm l; charset=GBK" %> <%@ taglib prefix="s" uri="/struts-tags" %><ht m l><head><title>Date Tag 示例</ti tle></head><body><h2>显示当前的时间</h2><table border="1"width="35%"><tr><td><b>日期格式</b></td><td><b>日期</b></td></tr><tr><td>Day/Month/Year</td><td><s:date nam e="currentDate"form at="dd/ MM/yyyy"/></td></tr><tr><td>Month/Day/Year</td><td><s:date nam e="currentDate"form at="MM/ dd/yyyy"/></td></tr><tr><td>Month/Day/Year</td><td><s:date nam e="currentDate"form at="MM/ dd/yy"/></td></tr><tr><td>Month/Day/Year Hour<B>:</B>Minute</t d><td><s:date nam e="currentDate"form at="MM/ dd/yy hh:m m"/></td></tr><tr><td>Month/Day/Year Hour<B>:</B>Minute< B>:</B>Second</td><td><s:date nam e="currentDate"form at="MM/ dd/yy hh:m m:ss"/></td></tr><tr><td>Nice Date (Current Date & Tim e)</td><td><s:date nam e="currentDate"nice="false" /></td></tr><tr><td>Nice Date</td><td><s:date nam e="currentDate"nice="true"/></td></tr></table></body></html>2.src\com\st erning\beanTag.java该项类更加简单,页面跳转package com.sterning;im port com.opensym phony.xwork2.ActionSupport;public class beanTag ex tends ActionSupport { public String execute() throws Ex ception{return SUCCESS;}}3.Struts.xml配置<action nam e="date Tag" cl ass="com.sterning.date Tag"><result>/pages/dataTags/date Tag.jsp</result> </action>4.运行效果图3.<s:dat e>标签四、<s:include>标签<s:include>标签用于在当前页面中包含来自其它servlet或JSP页面的处理结果。

相关文档
最新文档