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>。

Struts2详细实例教程

Struts2详细实例教程

Struts2(上)一、经典的MVC模式二、Struts1.x对MVC的实现三、Struts1.x的主要组件和作用组件作用ActionServlet 中央控制器Action 分控制器,调用JavaBean实现业务逻辑,Action可以分为Action、DispatchAction等不同类型ActionForm 封装参数,实现服务器验证,文件上传等Forward 转发到目的地,可以是JSP,也可以是另一个ActionStruts-config.xml 配置文件,配置有ActionForm,Action,Forward等,通过XML解析,然后使用反射技术使用该文件Struts标签库和JSTL类似,和Struts-config.xml、ActionForm、Action等对象可以紧密集成四、Struts1.x 开发实例-登录程序见案例。

五、Struts2(WebWork)的MVCStruts2的MVC架构六、Struts2的主要组件组件作用FilterDispatcher 起中央控制器作用的过滤器Action 处于Model层的Action,调用JavaBean实现业务逻辑struts.xml 核心配置文件,配置有Action、Result等result 和forward类似,转发的目的地,支持多种视图技术。

七、Struts2的实例-登录在MyEclipse环境中建立一个新的web工程,名称“Struts2Login”,存放路径“f:\Struts2Login”。

在Struts2.0.11版本中找到war包struts2-blank-2.0.11.war,解开该war包,在WEB-INF/lib 目录下复制出所有的jar包,这些jar包就是一个Struts2程序所需要的基础jar包,把它们复制到新建的web工程的WEB-INF/lib目录中。

在src目录下建立一个类,包名mypack,类名UserAction,其代码如下:package mypack;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private String username;private String userpass;public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getUserpass() {return userpass;}public void setUserpass(String userpass) {erpass = userpass;}@Overridepublic String execute() throws Exception {if ("Mike".equals(username) && "123".equals(userpass)|| "张三".equals(username) && "abc".equals(userpass))return "success";elsereturn "error";}}在src目录下建立Struts2的配置文件struts.xml,内容如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><!-- 定义包管理配置的action 继承struts-default.xml中的配置 --><package name="actions" extends="struts-default"><!-- 定义Action(login.action) --><action name="login" class="erAction"><!-- 定义转发路径对应的字符串名 --><result name="success">/Success.jsp</result><result name="error">/Error.jsp</result></action></package></struts>修改web.xml,在其中加入一个过滤器,过滤/*路径。

STRUTS2标签中符号#,$,%的用法示例

STRUTS2标签中符号#,$,%的用法示例

#、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。

在这里笔者简单介绍它们的相应用途。

1.#符号的用途一般有三种。

1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。

实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttrib ute(”msg”) 。

2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。

3)用来构造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。

2.%符号%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。

如下面的代码所示:构造Map<s:set name=”foobar” value=”#{’foo1′:’bar1′,‘foo2′:’bar2′}” /><p>The value of key “foo1″ is <s:property value=”#foobar['foo1']” /></p><p>不使用%:<s:url value=”#foobar['foo1']” /></p><p>使用%:<s:url value=”%{#foobar['foo1']}” /></p>3.$符号$符号主要有两个方面的用途。

在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。

struts2_超链接与action使用

struts2_超链接与action使用

Struts2 超链接和 action 使用Struts2.0 链接标签Web 应用区别于普通的站点之处在于Web 应用可以创建一个动态的响应。

为了使从一个页面中链接一个动态数据变得简单,Struts2 框架提供了一系列的标签。

Struts 标签的一种用法是创建链接到其他 Web 资源,特别是针对那些在本地应用中的资源。

1.普通链接Web 程序中最普通的应用是链接到其他页面,下面看 Welcome.jsp。

<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %><html><head><title>Welcome</title><link href="<s:url value="/css/tutorial.css"/>" rel="stylesheet"type="text/css"/></head><body><h3>Commands</h3><ul><li><a href="<s:url action="Login_input"/>">Sign On</a></li><li><a href="<s:url action="Register"/>">Register</a></li></ul></body></html>1.1 说明1.<%@ taglib prefix="s" uri="/struts -tags" %>此句表示导入 struts 标签,并以 s 为前缀。

struts2jsp页面使用s:if标签

struts2jsp页面使用s:if标签

struts2jsp页⾯使⽤s:if标签在jsp页⾯使⽤s:if来判断和使⽤s:date来格式化时间显⽰⽅式1 <s:if test="jobChangeList.size()>0">2 <s:iterator value="j obChangeList">3 <tr>4 <td>5 <s:if test="employeetype==0">正式员⼯ </s:if>6 <s:elseif test="employeetype==1">外包 </s:elseif>7 <s:elseif test="employeetype= =2">实习⽣</s:elseif>8 <s:else></s:else>9 </td>10 <td> 11 <s:if test="dimission==1 ">在职 </s:if>12 <s:elseif test="dimission==2">离职 </s:elseif>13 </td>14 </tr>15 </s:iterator>字符<s:iterator value="adboardDOList"> 页⾯直接遍历action提供的数据 <td class="align-center"> <s:if test='stat us == "P"'> <span class="c-ok">审核通过</span> </s:if> <s:elseif test='status == "W" '> 待审核 </s:elseif> <s:elseif test='status=="R"'> <span class="c-warn ">审核拒绝</span> <span class="icon icon-warning" title="<s:property value='comments'/>"></span> </s:elseif> </td>注意这⾥如果status类型是字符串类型在if中外层⽤的是单引号⾥⾯⽤双引号串类型1 <s:set name="age" value="61"/> 页⾯通过set赋值同时在页⾯上判断2 <s:if test="${age > 60}">3 ⽼年⼈4 </s:if>5 <s:elseif test="${age > 35}">6 中年⼈7 </s:elseif>8 <s:elseif test="${age > 15}" id="wawa">9 青年⼈10 </s:elseif>11 <s:else>12 少年13 </s:else>14 2 从后台数据库中取出值通过对对象传到页⾯ 15 <s:i f test="psInfoDO.employeetype==0">正式员⼯ </s:if>16 <s:elseif test="psInfoDO.employeetype==1">外包 </s :elseif>17 <s:elseif test="psInfoDO.employeetype==2">实习⽣</s:elseif>18 319 <s:set name="name" value="< %="'"+ request.getParameter("name")+"'" %>"/>20 <%21 System.out.println(request.getParameter("name"));22 %>23 <s:if test="#name=='zhaosoft'">24 zhaosoft here25 </s:if>26 <s:elseif test="#name=='zxl'">27 zxl her e28 </s:elseif>29 <s:else>30 other is here 31 </s:else>。

java相关的Struts2-Json插件的使用例子

java相关的Struts2-Json插件的使用例子

The JSO N p lug in p ro vid es a "js on" re sult type that se ria lizes a ctio ns into JSO N. The se ria liza tion p ro cess is re curs ive, me aning that the w ho le ob je ct g r a ph, s ta rting on the a ctio n class (b ase class not include d) w ill b e s e ria lize d (r o ot ob je ct ca n be cus to mize d us ing the "ro ot" a ttribute). If the inte rcep to r is used, the a ction w ill b e pop ulate d fro m the JSO N co ntent in the re ques t, thes e a re the rules o f the inte rce pto r:1The "conte nt-type" must be "a pp lica tio n/jso n"2The JSO N co nte nt mus t b e we ll fo rme d, s ee js on.o rg fo r g ra mma r.3Actio n mus t ha ve a p ub lic "s ette r" me tho d fo r fie ld s tha t mus t b e p o pula ted.4Sup po rte d type s fo r p op ula tio n a re: P rimitive s (int,long...String), Da te, Lis t, Map, P rimitive Arra ys, O the r cla ss (mo re o n this la te r), a nd Array o f O the r clas s.5Any o b je ct in JSO N, tha t is to b e p op ula ted ins ide a lis t, o r a ma p, w ill b e o f type Map (ma p p ing fro m p rope rtie s to va lues), a ny who le numbe r w ill b e o f type Long, a ny de cima l numbe r w ill be o f type Doub le, and a nya rra y o f type Lis t.JSON插件提供一种叫做“json”返回类型,来将action序列化成JSON 格式。

Struts2的s:date标签使用详解[转]

Struts2的s:date标签使用详解[转]

Struts2的s:date标签使⽤详解[转]作⽤:⽤来格式化显⽰⽇期的格式。

它可以⽤⼀种你指定的格式来显⽰(如:“yyyy-MM-dd”),可以⽣成通俗易懂的注释(如:in 2 hours,14 minutes),或者⽤预先定义的⼀个格式来显⽰(如在properties配置⽂件中配置'struts.date.format').如果没有找到这个struts.date.format,则会找默认的DateFormat.MEDIUM来格式化你的⽇期对象。

当然如果在值栈中没有找你对应的⽇期对象,则会返回空格。

可配置的标签属性有:· name· nice· format下⾯这些功能的使⽤决定于nice属性与format属性。

1、nice属性为truei18n key defaultstruts.date.format.past{0} agostruts.date.format.future in {0}struts.date.format.seconds an instantstruts.date.format.minutes{0,choice,1#one minute|1<{0} minutes}struts.date.format.hours {0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes}struts.date.format.days {0,choice,1#one day|1<{0} days} {1,choice,0#|1#, one hour|1<, {1} hours}struts.date.format.years {0,choice,1#one year|1<{0} years} {1,choice,0#|1#, one day|1<, {1} days}2、nice属性为 false,format属性指定的格式如:dd/MM/yyyy在这种情况下,format属性将被使⽤。

struts2(checkbox_radio_select)表单标签的应用及详细事例

struts2(checkbox_radio_select)表单标签的应用及详细事例

一、表单标签_checkbox复选框如果集合为list<s:checkboxlist name="list"list="{'Java','.Net','RoR','PHP'}"value="{'Java','.Net'}"/>生成如下html代码:<input type="checkbox"name="list"value="Java" checked="checked"/><label>Java</label><input type="checkbox"name="list"value=".Net" checked="checked"/><label>.Net</label><input type="checkbox"name="list" value="RoR"/><label>RoR</label><input type="checkbox"name="list"value="PHP" /><label>PHP</label><input type="checkbox"name="list"value="PHP" /><label>PHP</label>************************************************ *****<br>如果集合为MAP<s:checkboxlist name="map"list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}"listKey="key"listValue="value"value="{1,2,3}"/>生成如下html代码:<input type="checkbox"name="map"value="1" checked="checked"/><label>瑜珈用品</label><input type="checkbox"name="map"value="2" checked="checked"/><label>户外用品</label><input type="checkbox"name="map"value="3" checked="checked"/><label>球类</label><input type="checkbox"name="map"value="4"/><label>自行车</label>******************************************************<br>如果集合里存放的是javabean(id和name为Person的属性)<%Person person1 = new Person(1, "第一个");Person person2 = new Person(2, "第二个");List<Person> list = new ArrayList<Person>();list.add(person1);list.add(person2);request.setAttribute("persons", list);%><s:checkboxlist name="beans"list="#request.persons"listKey="id"listValue="name"/>生成如下html代码:<input type="checkbox"name=“beans" value="1"/><label>第一个</label><input type="checkbox"name=“beans" value="2"/><label>第二个</label>************************************************ ******<br>表单标签_radio单选框<a href="radio.jsp">测试</a><br>表单标签_select单选框<a href="select.jsp">测试</a>代码运行结果如下:----------------------------------------------------------------------------------------------------------------------------二、表单标签_radio下拉选择框如果集合里存放的是javabean(id和name为Person的属性) <%Person person1 = new Person(1, "第一个");Person person2 = new Person(2, "第二个");List<Person> list = new ArrayList<Person>();list.add(person1);list.add(person2);request.setAttribute("persons", list);%>< s:radio name="beans" list="#request.persons" listKey="id"listValue="name"/> 生成如下html代码:<input type="radio"name="beans"id="beans1" value="1"/><label>第一个</label><input type="radio"name="beans"id="beans2" value="2"/><label>第二个</label>************************************************ **************<br>该标签的使用和checkboxlist复选框相同。

Struts2入门经典实例

Struts2入门经典实例

写一个Steuts2的经典入门案例,怕忘记啊,有时候突然记不起知识概念了,所以还是记个笔记,网络上找了几个,发现部署出来要报错,最后还是自己写一个比较靠谱。

做了一个登陆程序作为入门例子。

登陆会去交互,并返回页面,比较适合以后扩展的项目,容易理解!例子:登陆的Struts2案例环境:IDE工具:Myeclipse , Tomcat6.0所需jar包:struts2-core-2.1.8.1.jarstruts2-json-plugin-2.1.8.1.jarxwork-core-2.1.6.jarcommons-fileupload-1.2.1.jarfreemarker-2.3.15.jarjunit4.4.jarognl-2.6.7.jar步骤:1. 创建一个web project项目2.导入Struts2所需jar包3.配置web.xml4.配置struts2.xml5.写action类(LoginUser.java)6.写jsp页面7.启动tomcat.运行项目项目最后截图:开始:1.创建一个项目还是截图,项目名称为:Struts2SpExa2.导入所需jar包导入所需jar包到项目的lib文件夹下(或者通过Build Path导入也可)3.在WEB-INF下面的web.xml中配置:配置拦截器和起始页面[html]view plain copy print?01.<?xml version ="1.0" encoding ="UTF-8"?> 02.<web-app version ="2.5" 03.xmlns ="/xml/ns/javaee" 04.xmlns:xsi ="/2001/XMLSchema-instance" 05.xsi:schemaLocation ="/xml/ns/javaee 06./xml/ns/javaee/web-app_2_5.xsd"> 07.<filter> 08.<filter-name>struts2</filter-name> 09.<filter-class> 10.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 11.</filter-class> 12.</filter> 13.14.<filter-mapping> 15.<filter-name>struts2</filter-name> 16.<url-pattern>/*</url-pattern> 17.</filter-mapping> 18.<welcome-file-list> 19.<welcome-file>/WEB-INF/jsp/login.jsp </welcome-file> 20.</welcome-file-list> 21.22. </web-app>4.配置struts.xml配置strust2要调用的action[html] view plain copy print ?01.<?xml version ="1.0" encoding ="UTF-8"?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 04."/dtds/struts-2.0.dtd"> 05.<!--配置struts action > 06.<struts> 07.<package name ="todayMZ" extends ="struts-default" namespace ="/"> 08.<action name ="loginUser" class ="erAction"> 09.<result name ="success">/WEB-INF/jsp/success.jsp </result> 10.<result name ="fail">/WEB-INF/jsp/fail.jsp </result> 11.</action> 12.</package> 13. </struts>5.写action 类(LoginUser.java)这个类主要用于struts2跳转到这个action 后。

struts2标签详解

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。

SSH开发模式——Struts2(第一小节)

SSH开发模式——Struts2(第一小节)

SSH开发模式——Struts2(第⼀⼩节)在制定了学习计划的学习过程中,我感觉学习还是很有效率的。

很短的时间内,我便学习完了JavaWeb的连接池、DbUtils框架及其⼀些⼯具类的使⽤。

学⽆⽌境,学习这些知识还远远不够,所以,在接下来的时间⾥,我将对JavaWeb中的SSH开发模式进⾏⼀个简单的学习,并⽤博客记录学习进度。

开发模式相信⼤家都有接触或听说,但⼜觉得这个东西很神秘,的确,这看不见摸不着的东西确实很让⼈好奇,所以,从今天开始,我将带着⼤家去揭开它神秘的⾯纱。

我会把整个开发模式分为三部分,第⼀部分:Struts2,第⼆部分:Hibernate,第三部分:Spring。

但是即使分为了三部分,每个部分的框架仍然略显复杂。

所以,我将在每部分的框架中继续细分。

那么,今天便开始第⼀部分的内容,Struts2。

⾸先了解⼀下Struts2的历史吧。

Struts1是全世界第⼀个发布的MVC框架在2001年发布Struts2并不是Struts1的升级版是由WebWork基础上发展起来的吸收了Struts 1和WebWork两者的优势那Struts2到底是什么呢?Struts2是⼀个⽤来开发MVC应⽤程序的框架。

它提供了Web应⽤程序开发过程中的⼀些常见问题的解决⽅案:页⾯导航活动的管理⽤户输⼊数据的合法性验证统⼀的布局可扩展性国际化和本地化⽀持Ajax表单的重复提交我们假设⼀个场景,在⼀个jsp页⾯中有多个超链接,点击每个超链接都需要进⾏对应的处理,每个超链接对应⼀个Java类,类中有⼀个⽅法,我们的⽬的就是要点击超链接调⽤对应的Java类的⽅法,对于这样的场景,我们有两种解决⽅案,⼀是通过Servlet去调⽤Java类,⼆是通过过滤器去调⽤Java类。

但是两种⽅法都很⿇烦,重复的代码特别多,这时候,Struts2框架就起到了⾄关重要的作⽤,它可以很⽅便地帮助我们解决这个问题。

那么,如何搭建Struts2的开发环境呢?搭建Struts2环境时,我们⼀般需要做以下⼏个步骤的⼯作:1. 创建javaweb⼯程2. 找到开发Struts2应⽤需要使⽤到的jar⽂件3. 创建jsp⽂件4. 创建action⽂件5. 编写Struts2的配置⽂件6. 在web.xml中加⼊Struts2 MVC框架启动配置我们按照步骤⼀步步⾛。

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例子三【Action】整理文

struts2例子三【Action】整理文

struts2例⼦三【Action】整理⽂Action 的配置是 Struts2 框架的⼀个基础⼯作单元,每⼀个 Action 的配置都有对应的处理类,当⼀个请求和 Action 的 name 相匹配时,框架将根据所配置的 Action 映射来决定对请求的处理。

1、Action 映射配置在 Action 映射中可以指定 result types 、异常处理器( exception handlers )及拦截器,但是,只有Action 的 name 属性是必需指定的,其他属性也可以在 package 范围内进⾏定义,供该 package 下配置的所有 Action 引⽤。

如:<action name="Logon" class="tutorial.Logon"><result name="input">Logon.jsp</result></action>2、Action 名称及命名注意:如果在你的 action 的 name 中包含有斜线(如: <action name="xxxxxx/xxxxxx" class="xxxxxx.xxxxx"/> ),你需要在 struts.xml 中进⾏如下配置: <constant name="struts.enable.SlashesInActionNames" value="true"/> ,但是,启⽤该配置也会产⽣⼀些副作⽤。

具体-。

-问度娘警告:谨慎使⽤在 action 名称中包含点 (er) 、斜线 (create/user) 和横线 (create-user) 的情况,虽然 action 的名称定义⾮常灵活,但是,当在 action 的 name 中使⽤点、斜线或横线时,应该谨慎。

  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页面的处理结果。

相关文档
最新文档