`
lysongfei
  • 浏览: 60175 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2标签使用汇总

阅读更多

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <sx:head debug="false" extraLocales="en-us,nl-nl,de-de,zh_CN" />
  <title>注册页面</title>
 </head>
 <body>
  <s:form action="registAction" name="regForm">
   <table width="50%" align="center">
    <tr>
     <th>
      用户注册
     </th>
    </tr>
    <tr>
     <td>
      <s:textfield label="用户名" name="username" required="true" />
     </td>
    </tr>

    <tr>
     <td>
      <s:password label="密码" name="password" required="true" />
     </td>
    </tr>

    <tr>
     <td>
      <s:password label="确认密码" name="verifypassword" required="true" />
     </td>
    </tr>

    <tr>
     <td>
      <s:textfield label="注册邮箱" name="email" required="true" />
     </td>
    </tr>

    <tr>
     <td>
      <s:radio label="性别" list="%{#{'0':'男性','1':'女性'}}" name="sex" value="'男性'"></s:radio>
    </tr>

    <tr>
     <td>
      <s:select label="住址"
       list="{'西城区','东城区','朝阳区','海淀区','大兴区','丰台区','通州区','怀柔区'}"
       name="address" value="'朝阳区'"></s:select>
     </td>
    </tr>


    <tr>
     <td>
      <s:combobox label="职位"
       list="{'Java开发工程师','前台美工','.net开发工程师','C++工程师','客服人员'}"
       name="job"/>
    </tr>

    <tr>

     <td>
      <s:checkboxlist label="从哪里了解到本公司信息?" name="msgfrom"
       list="{'报纸','电视','互联网','朋友介绍'}" value="'互联网'" />
     </td>
    </tr>


    <tr>
     <td>
      <!-- 级联菜单标签 -->
      <s:doubleselect label="业余爱好" name="type" list="{'球类', '棋类'}"
       doubleName="hobby"
       doubleList="top == '球类' ? {'篮球', '乒乓球','羽毛球','网球','足球'} : {'象棋', '围棋','陆战棋'}"
       formName="regForm" />
     </td>
    </tr>

    <tr>
     <td>
      <s:optiontransferselect label="你喜欢的书籍" name="javabook"
       leftTitle="Java书籍" rightTitle="其它书籍"
       list="{'Java编程思想', 'JUnit In Action', 'Java核心技术','Hibernate In Action'}"
       multiple="true" headerKey="headerKey"
       headerValue="------ 请选择 ------" emptyOption="true"
       doubleList="{'软件工程', 'C++ Primer', '算法设计','JVM原理'}"
       doubleName="otherbook" doubleHeaderKey="doubleHeaderKey"
       doubleHeaderValue="------ 请选择 ------" leftDownLabel="向下移动"
       leftUpLabel="向上移动" rightDownLabel="向下移动" rightUpLabel="向上移动"
       addToRightLabel="向右移动" addToLeftLabel="向左移动"
       addAllToRightLabel="全部右移" addAllToLeftLabel="全部左移"
       selectAllLabel="全部选中" upDownOnLeftOnclick="true" />
     </td>
    </tr>

    <tr>
     <td>
      <s:select label="户口所在地" name="city" value="%{'北京市'}"
       list="%{'北京市'}">
       <s:optgroup label="河南省"
        list="%{#{'郑州':'郑州','洛阳':'洛阳','安阳':'安阳'}}" />
       <s:optgroup label="山东省"
        list="%{#{'青岛':'青岛','大连':'大连','烟台':'烟台'}}" />
       <s:optgroup label="江西省"
        list="%{#{'南昌':'南昌','九江':'九江','浔阳':'浔阳'}}" />
      </s:select>
     </td>
    </tr>

    <tr>
     <td>
      <sx:datetimepicker name="regdate" label="内置日期控件(基于dojo)" value="%{'today'}"
       displayFormat="yyyy年MM月dd日" />
     </td>

    </tr>

    <tr>
     <td align="right">
      <sx:autocompleter name="fruitlike" label="静态表单自动填充(autocomplete中文问题尚未解决)"
       list="{'apple','banana','pear','grape'}" autoComplete="true" />
     </td>
    </tr>

    <tr>
     <td></td>
     <td align="right">
      <input type="submit" value="注册" />
     </td>
    </tr>
   </table>
  </s:form>
 </body>
</html>

 

接收参数bean

 

package com.song.bean;

/**
 * struts2标签元素获取
 */
import java.util.ArrayList;
import java.util.List;

public class RegistBean {
 private String username;
 
 private String password;
 
 private String email;
 
 private byte sex;
 
 private String address;
 
 private String job;
 
 private List<String> msgfrom = new ArrayList<String>();
 
 private String hobby;
 
 private String[] javabook;
 
 private String[] otherbook;
 
 private String city;
 
 private String regdate;
 
 private String fruitlike;

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }

 public byte getSex() {
  return sex;
 }

 public void setSex(byte sex) {
  this.sex = sex;
 }

 public String getAddress() {
  return address;
 }

 public void setAddress(String address) {
  this.address = address;
 }

 public String getJob() {
  return job;
 }

 public void setJob(String job) {
  this.job = job;
 }

 public List<String> getMsgfrom() {
  return msgfrom;
 }

 public void setMsgfrom(List<String> msgfrom) {
  this.msgfrom = msgfrom;
 }

 public String getHobby() {
  return hobby;
 }

 public void setHobby(String hobby) {
  this.hobby = hobby;
 }

 public String[] getJavabook() {
  return javabook;
 }

 public void setJavabook(String[] javabook) {
  this.javabook = javabook;
 }

 public String[] getOtherbook() {
  return otherbook;
 }

 public void setOtherbook(String[] otherbook) {
  this.otherbook = otherbook;
 }

 public String getCity() {
  return city;
 }

 public void setCity(String city) {
  this.city = city;
 }

 public String getRegdate() {
  return regdate;
 }

 public void setRegdate(String regdate) {
  this.regdate = regdate;
 }

 public String getFruitlike() {
  return fruitlike;
 }

 public void setFruitlike(String fruitlike) {
  this.fruitlike = fruitlike;
 }
 
}
验证规则

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
 <field name="username">
  <field-validator type="requiredstring">
   <param name="trim">true</param>
   <message>用户名不能为空!</message>
  </field-validator>
 </field>

 <field name="password">
  <field-validator type="requiredstring">
   <param name="trim">true</param>
   <message>密码不能为空!</message>
  </field-validator>
  <field-validator type="stringlength">
   <param name="trim">true</param>
   <param name="minLength">6</param>
   <message>密码最短${minLength}位!</message>
  </field-validator>
 </field>

 <field name="verifypassword">
  <field-validator type="fieldexpression">
   <param name="trim">true</param>
   <!--
    <param name="expression"> <![CDATA[verifypassword==password]]>
    </param>
   -->
   <param name="expression"><![CDATA[(#parameters.password[0] == #parameters.verifypassword[0])]]></param>

   <message>密码和确认密码不一致!</message>
  </field-validator>
 </field>

 <field name="email">
  <field-validator type="regex">
   <param name="expression"><![CDATA[^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$]]></param>
   <message>你输入的地址不是有效的Email地址!</message>
  </field-validator>
 </field>
</validators>

 

分享到:
评论

相关推荐

    struts2标签汇总

    在Struts2中,标签库是其核心功能之一,它们提供了丰富的功能,帮助开发者创建用户友好的界面并减少代码量。本篇文章将深入探讨Struts2中的标签,特别是Ajax标签,并附带相关的源码分析。 一、Struts2基本标签库 ...

    Struts2文件类型汇总

    Struts2的`&lt;s:file&gt;`标签用于创建表单中的文件输入字段。此外,开发者还需要考虑文件大小限制、安全性(如防止恶意文件上传)以及存储位置等问题。 总而言之,Struts2对各种文件类型的全面支持使得开发人员能够方便...

    Struts2教程汇总

    ”应用,到展示如何使用Struts2的标签库来构建动态网页。此外,它可能还会讨论Maven或者Gradle构建工具的集成,以及如何利用Struts2的插件进行单元测试。 "struts2_base入门实例源代码.rar"则提供了实际的源代码...

    Struts1相关学习资料汇总

    资源名称:Struts1相关学习资料汇总资源目录:【】Struts1工作原理浅析【】struts1标签库详解【】struts1核心思想【】struts1详细配置【】Struts_in_Action_中文版【】Struts中文手册资源截图: 资源太大,传百度...

    struts2学习笔记.doc

    - **问题汇总**:针对Struts2开发过程中常见的问题进行总结和解答。 以上是基于文档提供的信息整理出来的Struts2学习笔记的关键知识点概览。这些内容不仅涵盖了Struts2的基本使用方法,还涉及到了一些高级特性和...

    轻量级框架之 Struts2完整版教学课件汇总

    通过实际案例,可以更好地理解Struts2的使用方法,包括Action的创建、配置、控制器组件的交互以及视图的渲染。 总结,Struts2是一个强大且灵活的Java Web框架,它的优势在于无侵入式设计、拦截器、类型转换和输入...

    SSH(Struts,Spring,Hibernate)笔试题与面试题汇总整理.docx

    7. 绑定值到视图的对比:Struts1 使用标准 JSP 机制把对象绑定到视图页面,而 Struts2 使用“ValueStack”技术,使标签库能够访问值,而不需要把对象和视图页面绑定在一起。 8. 类型转换的对比:Struts1 ActionForm ...

    Struts常见错误汇总

    ### Struts 常见错误汇总与解析 #### 1. No bean found under attribute key XXX **问题描述:** 在使用 Struts 框架进行 Java Web 开发时,经常会出现找不到对应属性键下的 Bean 的情况。这通常发生在 `...

    STRUTS JAR包汇总于此

    2. **标签库**: Struts提供了丰富的标签库,如`struts-tags.jar`,包含了一系列可直接在JSP页面中使用的HTML和逻辑标签,简化了页面开发。例如,`&lt;s:textfield&gt;`用于创建表单字段,`&lt;s:if&gt;`和`s:else`用于条件判断等...

    初次配置Struts2环境碰到的一系列问题汇总

    这里`2.5.x`代表你需要使用的Struts2版本号。 2. **配置web.xml**:在Web应用的WEB-INF目录下,需要编辑web.xml文件,添加Struts2的过滤器。过滤器配置如下: ```xml &lt;filter-name&gt;struts2 &lt;filter-class&gt;org...

    Struts Spring Hibernate面试题汇总

    【SSH面试题汇总】主要涉及的是Struts、Spring和Hibernate这三个流行Java EE框架的相关知识,以及MVC设计模式的理解。MVC(Model-View-Controller)模式是软件工程中的一种架构模式,它将应用程序分为三个核心组件:...

    struts标签

    在利用mvcstruts开发的框架中我们一般会应用的struts标签的汇总

    Struts常见错误汇总.txt

    ### Struts 常见错误汇总与解析 #### 一、Nobean found under attribute key XXX 在 Struts 框架中,如果在请求作用域(request scope)中查找某个 ActionForm bean 时未找到,则会抛出此异常。这通常是因为在 `...

    Struts常见错误的全面汇总

    确保在使用`&lt;bean:message&gt;`等标签时,对应的key在资源文件中存在,并且在`struts-config-xxx.xml`中正确配置了资源文件的路径。 ### 4. NogettermethodforpropertyXXXofbeanteacher 当JSP试图访问一个bean的属性...

    logic标签汇总

    - 标签通常需要与`struts-tiles`库一起使用,因为它们依赖于Struts的上下文。 - `logic`标签的属性通常为表达式语言(EL,Expression Language)表达式,允许访问请求、session或application范围内的对象。 - 标签的...

Global site tag (gtag.js) - Google Analytics