Strus 2的新表单标志的使用
Struts 2为大家提供了不少常用的很酷的表单标志,简化了我们程序员的工作。不过,由于这些都是新标志,大家可能在使用上还存在不少疑问表单标志使用小技巧Struts 2的表单标志在输出(render)HTML时,使用了模板的概念,增加了复杂性(因为它不像Struts 1.x的表单标志,它通常都是一个标志对应HTML的一个元素),因此大家在使用时,需要一些技巧:
1.Struts 2的UI标志的表单标志默认是以表格布局,按钮是右对齐的。如果你不喜欢此风格,你可以简单地将<s:form />标志的“theme”属性设为“simple”,然后用以往的做法自已布局表单元素(注意:此法有利有弊,弊就是当你将“theme”属性设为“simple”时,表单标志以最简单方式输出HTML,所以你可能失去一些默认输出提供的便利,如:友好的错误信息的显示,或客户端的表单验证等)。当然更好的做法是通过CSS或自定义主题(theme)然后应用到整个应用程序,这样可以获得一致的页面风格,加强用户体验(我会在以后的文章对此进行讲解);
2.当你在页面上加入某些标志(如:<s:doubleselect />等)时,应该通过action来访问页面,而不是通过*.jsp的URL直接访问。
下面我将分别对这些标志进行讲述:
下面做个简单的案例:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()
+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'reg.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<div align="center">
<div>
<h1>注册页面</h1>
<div>
<!-- form表单 -->
<s:form theme="xhtml" action="insert" namespace="/csdn">
<!--名称-->
<s:textfield name="user.name" key="user.name" tooltip="请输入名称"
tooltipDelay="5000" ></s:textfield>
<!--密码-->
<s:password name="user.pass" key="user.pass"></s:password>
<s:password name="user.cpass" key="user.cpass"></s:password>
<!-- 性别 -->
<s:radio name="user.sex" list="{'男','女'}" value="'男'"
key="user.sex"></s:radio>
<!--学历 -->
<s:select list="{'博士','硕士','本科','大专','中专','高中'}"
name="user.education" key="user.education" value="'本科'">
</s:select>
<!-- 邮箱 -->
<s:textfield name="user.email" key="user.email"></s:textfield>
<!-- 地址 -->
<s:doubleselect doubleList="top=='北京'?{'海淀','朝阳'}:{'保定','石家
庄'}" list="{'北京','河北'}" doubleName="state" key="user.city"
name="user.city"></s:doubleselect>
<!-- 出生日期 -->
<s:textfield name="user.birth" key="user.birth"></s:textfield>
<!-- 用户爱好 -->
<s:checkboxlist name="user.favs" list="#{1:'打篮球',2:'排球',3:'足球'}"
listKey="key" listValue="value" key="user.favs"></s:checkboxlist>
<!-- 用户介绍 -->
<s:textarea cols="18" rows="10" name="user.intro" key="user.intro">
</s:textarea>
<!-- 提交文本 -->
<s:submit key="submit"></s:submit>
</s:form>
<!-- 这个标志可能大家不常用,不过本人认为它还是挺有用的。在使用Struts 1.x时
,
因为跳转通常是用Forward(而不是Redirect)实现的,
所以当用户完成请求后,按“F5”刷新页面时,就会重新提交上次的请
求,这样经常会出错。
要解决这个问题,<s:token />可以帮你忙。
-->
<s:token></s:token>
</div>
</div>
</div>
</body>
</html>
分享到:
相关推荐
struts2的新表单标志的使用 struts2与AJAX一 struts2与AJAX二 struts2与AJAX三 struts2中用Spring实现IOC struts2中的零配置与IOC struts2介绍之使用连接标签 struts2入门 struts2进阶学习一 struts2进阶学习二 ...
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——...12 Struts 2的新表单标志的使用 13 Struts 2与AJAX
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——...12 trus 2的新表单标志的使用 13 Struts 2与AJAX
Struts 2.0系列(MAX),pdf格式,全方位介绍struts2: 常用的Struts 2.0的标志(Tag)介绍 Struts 2.0的Action讲解 在Struts 2.0中国际化(i18n)您的应用程序 ...Strus 2的新表单标志的使用 Struts 2与AJAX