您的位置:首页 > 编程语言 > Java开发

Struts2学习笔记(十):Strut2表单标签详解

2015-09-13 19:06 591 查看
Struts2提供了一系列用于表单的标签,本文主要对这些标签的用法做个介绍,仍然采用代码+注释的形式进行讲解。

<%@page import="com.jiajia.model.Group"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="com.jiajia.model.Course"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 添加struts标签所需的标签库 -->
<%@ taglib prefix="s" uri="/struts-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">
<title>Insert title here</title>
</head>
<body>

	<!-- 为了在网页中看到valueStack,必须加上该条配置 -->
	<s:debug></s:debug>
	<%
		List<Group> groups = new ArrayList<Group>();
		groups.add(new Group(1,"basketball"));
		groups.add(new Group(2,"baseball"));
		groups.add(new Group(3,"chess"));
		groups.add(new Group(4,"music"));
		request.setAttribute("groups", groups);
		
		String []grades = new String[]{"一年级","二年级","三年级"};
		request.setAttribute("grades", grades);
		
		List<Course> courses = new ArrayList<Course>();
		courses.add(new Course(1,"Math"));
		courses.add(new Course(2,"English"));
		courses.add(new Course(3,"Politics"));
		courses.add(new Course(4,"History"));
		request.setAttribute("courses", courses);
		
		List<Course> sCourses = new ArrayList<Course>();
		sCourses.add(new Course(1,"Machine Learning"));
		sCourses.add(new Course(2,"Pattern Recognition"));
		sCourses.add(new Course(3,"Data Mining"));
		sCourses.add(new Course(4,"Statistic"));
		request.setAttribute("sCourses", sCourses);
	%>
	<!-- 
		Struts2表单标签的一个非常大的好处是可以自动实现表单回显功能。
		需要注意的是,为了实现回显功能,form对应的Action类中必须有
		与form中各个标签的name属性对应的属性,并有相应的getter和setter方法。
	 -->
	<s:form action="userAction">
		<!-- 普通输入框,name属性用于访问里面的内容,label属性用于在输入框前面显示文本。 -->
		<s:textfield name="name" label="用户名"/>
		
		<!-- 密码输入框  showPassword属性决定表单回显是否将密码一块儿回显-->
		<s:password name="password" label="密码" showPassword="true"></s:password>
		
		<!-- 多行文本输入框 -->
		<s:textarea name="address" label="address"></s:textarea>
		
		<!-- 
			checkbox 标签将呈现为一个 HTML 复选框元素. 该复选框元素通常用于提交一个布尔值。  
			无论该复选框是否被勾选,请求参数中都会增加这一个参数,勾选值为true,不勾选值为false
		-->
		<s:checkbox name="adult" label="成年"></s:checkbox>
		
		<!-- 
			checkboxList标签提供的就是传统HTML中的checkbox功能,可以提供多个选项供用户选择。
			list属性时必须填的,主要为checkboxList提供数据,可以接收String, 数组, Enumeration, 
			Iterator, Map 或 Collection 赋给 list 属性.
			下面的例子中,groups中的Group对象的个数即为复选框的个数,Group对象的groupId属性是实际被当做
			请求参数的,groupName属性用于显示。  
		 -->
		<s:checkboxlist name="groups" list="#request.groups" 
		listKey="groupId" listValue="groupName"></s:checkboxlist>
		
		<!-- radio 标签将呈现为一组单选按钮, 单选按钮的个数与程序员通过该标签的 list 属性提供的选项的个数相同 -->
		<s:radio list="#request.grades" name="grade"/>
		
		<!-- 
			select 标签将呈现一个 select 元素,仍然是靠list属性提供数据,multiple属性指示是否可以多选 .
			s:optgroup作为select的子标签可以提供选项组,组里的内容依然是使用list,listKey,listValue来组织。
		-->
		<s:select list="#request.courses" listKey="courseId" 
		listValue="courseName" name="courses" multiple="true">
			<s:optgroup list="#request.sCourses" listKey="courseId" 
			listValue="courseName" label="super courses"></s:optgroup>
		</s:select>
		
		<s:submit value="提交"></s:submit>
	</s:form>
	<br/><br/>
	<br/><br/>
	<br/><br/>
	<br/><br/>
	<br/><br/>
	
	
</body>
</html>
完整的示例代码在这里:http://download.csdn.net/detail/jiajia333666/9103333
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: