struts2 UI标签 和 主题

时间:2023-03-08 15:59:23

四、Struts2的UI标签和主题

1、Struts2中UI标签的优势

自动的数据回显和错误提示功能

自带的简单样式和排版

2、表单标签的通用属性

说明:UI标签中value的取值一般都是字符串。

2.1、UI标签的通用属性

struts2   UI标签  和  主题

2.2、关于checkboxlist的使用:

 /**
* s:checkboxlist标签的使用
* @author zhy
*
*/
public class Demo6Action extends ActionSupport { //初始化表单用的爱好列表
private String[] hobbyarr = new String[]{"吃饭","睡觉","写代码"}; //用户提交表单时的数据封装到此属性中
private String hobby; public String save(){
System.out.println(hobby);
return null;
} public String[] getHobbyarr() {
return hobbyarr;
} public void setHobbyarr(String[] hobbyarr) {
this.hobbyarr = hobbyarr;
} public String getHobby() {
return hobby;
} public void setHobby(String hobby) {
this.hobby = hobby;
} }

动作类

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>checkboxlist标签的使用</title>
</head>
<body>
<s:form action="save">
<%--checkboxlist:是在表单中生成一些复选框。list的取值是一个OGNL表达式 --%>
<s:checkboxlist name="hobby" list="hobbyarr"></s:checkboxlist>
<s:submit value="提交"/>
</s:form>
<%-- <s:debug/> --%>
</body>
</html>

checkbox.jsp

      

2.3、UI标签的小案例以及模型驱动的分析

 package com.itheima.web.action;

 import com.itheima.domain.Customer;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
* 表单的一个小例子
* @author zhy
*
*/
public class Demo7Action extends ActionSupport implements ModelDriven<Customer> { //定义一个模型,注意,必须自己实例化
private Customer customer = new Customer(); public Customer getModel() {
return customer;
} public String save(){
System.out.println(customer);
return null;
} public Customer getCustomer() {
return customer;
} public void setCustomer(Customer customer) {
this.customer = customer;
} }

DemoAction7.java

 public class Customer implements Serializable{

     private String name;
private String password;
private boolean married;
private String hobby;
private String city;
private String description;
private String gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Customer [name=" + name + ", password=" + password
+ ", married=" + married + ", hobby=" + hobby + ", city="
+ city + ", description=" + description + ", gender=" + gender
+ "]";
} }

实例类

     <s:form action="saveCustomer">
<s:textfield name="name" label="用户名" />
<s:password name="password" label="密码" />
<s:checkbox name="married" label="已婚" value="true" />
<s:checkboxlist name="hobby" list="{'摄影','旅行','足球'}" label="爱好" />
<s:select name="city" label="故乡" list="#{'BJ':'北京','SH':'上海','SZ':'苏州'}" headerKey="" headerValue="---请选择---"/>
<s:textarea name="description" label="个人介绍" rows="5" cols="25" />
<s:radio name="gender" list="#{'male':'男','female':'女'}" label="性别" value="'male'" /><%--value是一个OGNL表达式 --%>
<s:submit value="提交" theme="simple"/><s:reset value="重置" theme="simple" />
</s:form>

Demo7.jsp

3、UI标签的模板(主题)

3.1、struts2中默认主题

默认主题的名称是XHTML,都是在struts的默认属性文件中定义着:default.properties

3.2、更改默认主题

a、更改表单某个元素的默认主题:使用的是表单元素的theme属性。

s:submit value="提交" theme="simple"/><s:reset value="重置" theme="simple" />

b、更改表单所有主题:使用的是form标签的theme属性。

     <s:form action="saveCustomer" theme="simple">
<s:textfield name="name" label="用户名" />
<s:password name="password" label="密码" />
<s:checkbox name="married" label="已婚" value="true" />
<s:checkboxlist name="hobby" list="{'摄影','旅行','足球'}" label="爱好" />
<s:select name="city" label="故乡" list="#{'BJ':'北京','SH':'上海','SZ':'苏州'}" headerKey="" headerValue="---请选择---"/>
<s:textarea name="description" label="个人介绍" rows="5" cols="25" />
<s:radio name="gender" list="#{'male':'男','female':'女'}" label="性别" value="'male'" /><%--value是一个OGNL表达式 --%>
<s:submit value="提交" theme="simple"/><s:reset value="重置" theme="simple" />
</s:form>

c、更改全站所有表单主题:是在struts.xml配置文件中,覆盖原有主题的设置。

<constant name="struts.ui.theme" value="simple" />