Struts2的表单标签可分为两种:Form表单本身和单个表单元素的标签。所有表单标签处理类都继承了UIBean类,UIBean包含了一些通用属性,分为3种。(1)模板相关属性、(2)JS相关属性、(3)通用属性。
如:注册表单例子
myform.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML>
<html>
<head>
<title>Regist - Document</title>
<meta charset="utf-8">
</head>
<body>
<s:form action="regist" methor="get">
用户名:<s:textfield name="user.name" label="用户名" cssClass="zyinput"></s:textfield>
密码:<s:password name="user.pass" label="密码"></s:password>
性别:<s:radio list="#{1:'男',0:'女'}" name="user.sex"></s:radio>
爱好:<s:checkboxlist list="#{'1':'篮球','2':'足球','3':'棒球'}" name="user.hoppy"></s:checkboxlist>
地区:<s:select list="#{'sd':'山东省','bj':'北京市','gd':'广东省'}" name="user.prov"></s:select>
备注:<s:textfield name="user.memo"></s:textfield>
<s:submit value="submit"></s:submit>
<s:reset value="reset"></s:reset>
</s:form>
</body>
</html>
control.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML>
<html>
<head>
<title>struts2标签库</title>
<meta chartset='utf-8'>
</head>
<body>
<s:if test="user.sex==0">女</s:if>
<s:elseif test="user.sex==1">男</s:elseif>
<s:else>无性别</s:else>
<s:iterator value="list">
<s:property value="name"/>
</s:iterator>
<s:property value="list[0].name"/>
<h3>append拼接结合List</h3>
<s:append id="zy">
<s:param value="{'山东','上海','广东','北京','天津'}"></s:param>
<s:param value="{'苹果','香蕉','橙子','雪梨','葡萄'}"></s:param>
</s:append>
<s:iterator value="#zy" var="y"><s:property/></s:iterator>
<h3>append拼接结合Map</h3>
<s:append id="zs">
<s:param value="#{'1':'山东','2':'上海','3':'广东','4':'北京','5':'天津'}"></s:param>
<s:param value="#{'6':'苹果','7':'香蕉','8':'橙子','9':'雪梨','10':'葡萄'}"></s:param>
</s:append>
<s:iterator value="#zs" var="s">
<s:property value="#s.key"/><s:property value="#s.value"/>
</s:iterator>
<h3>merge拼接结合List</h3>
<s:merge id="mer">
<s:param value="{'山东','上海','广东','北京','天津'}"></s:param>
<s:param value="{'苹果','香蕉','橙子','雪梨','葡萄'}"></s:param>
</s:merge>
<s:iterator value="#mer" var="m"><s:property value="#m"/></s:iterator>
<h3>Subset根据筛选器选择集合中的元素,筛选包含s的字符串</h3>
<s:bean name="top.k10000.ContainSDecider" id="testDec"></s:bean>
<s:subset id="sub" source="{'s1','s2','struts','ajax','java','php'}" count="5" decider="#testDec">
<s:iterator> <s:property/> </s:iterator>
</s:subset>
<h3>Sort排序</h3>
<s:set name="frank" value="{'s1','s2','struts','ajax','java','php'}" />
<s:bean id="sort" name="top.k10000.TestComparator"></s:bean>
<s:sort source="frank" comparator="sort">
<s:iterator> <s:property /> </s:iterator>
</s:sort>
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.ui.theme" value="simple"></constant><!-- 设置为不加入table标签 -->
<package name="mypackage" extends="struts-default">
<action name="regist" class="top.k10000.RegistAction">
<result name="success">/control.jsp</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>myform.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping></web-app>
User.java
package top.k10000;
public class User {
private String name;
private String pass;
private String sex;
private String hoppy;
private String prov;
private String memo;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getHoppy() {
return hoppy;
}
public void setHoppy(String hoppy) {
this.hoppy = hoppy;
}
public String getProv() {
return prov;
}
public void setProv(String prov) {
this.prov = prov;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
}
RegistAction.java
package top.k10000;
import java.util.ArrayList;
import java.util.List;
import top.k10000.User;
import com.opensymphony.xwork2.ActionSupport;
public class RegistAction extends ActionSupport{
private User user;
private List<User> list = new ArrayList();
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public String execute()throws Exception{
User u1 = new User();
u1.setName("s1");
User u2 = new User();
u2.setName("s2");
User u3 = new User();
u3.setName("s3");
User u4 = new User();
u4.setName("s4");
User u5 = new User();
u5.setName("s5");
list.add(u1);
list.add(u2);
list.add(u3);
list.add(u4);
list.add(u5);
return "success";
}
}
ContainSDecider.java
package top.k10000;
import org.apache.struts2.util.SubsetIteratorFilter.Decider;
public class ContainSDecider implements Decider{
@Override
public boolean decide(Object element) throws Exception {
String str = (String)element;
return str.contains("s");
}
}
TestComparator.java
package top.k10000;
import java.util.Comparator;
public class TestComparator implements Comparator{
@Override
public int compare(Object o1, Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
return s1.compareTo(s2);
}
}
结果如下:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/151223.html