struts用上下左右键盘切换光标<html:text,Struts学习(五)-表单标签,一个实例练习...

表单标签将在 HTML 文档里被呈现为一个表单元素 使用表单标签的优点: 表单回显 对页面进行布局和排版

标签的属性可以被赋值为一个静态的值或一个 OGNL 表达式. 如果在赋值时使用了一个 OGNL 表达式并把它用 %{} 括起来, 这个表达式将会被求值.

表单标签的共同属性

6dee44012dc677ac4ef5d7726c3a6cd1.png

* 该属性只在没有使用 simple 主题时才可以使用.

form标签

65f1159d3ccc00db2d6bd370996a8770.png

默认情况下, form 标签将被呈现为一个表格形式的 HTML 表单. 嵌套在 form 标签里的输入字段将被呈现为一个表格行.

每个表格行由两个字段组成, 一个对应着行标, 一个对应着输入元素. 提交按钮将被呈现为一个横跨两列单元格的行

textfield, password, hidden 标签

textfield 标签将被呈现为一个输入文本字段, password 标签将被呈现为一个口令字段, hidden 标签将被呈现为一个不可见字段.

4c5b3a0a3b900f45eaf839955791a237.png

password 标签扩展自 textfield 标签, 多了一个 showPassword 属性. 该属性时布尔型. 默认值为 false, 它决定着在表单回显时是否显示输入的密码.

submit 标签

submit 标签将呈现为一个提交按钮.

根据其 type 属性的值. 这个标签可以提供 3 种呈现效果:

input:

button:

image:

40322a7c0966e3f1ad69f810ca076913.png

textarea 标签

textarea 标签将呈现为一个 HTML 文本域元素

8d8c8d737cad5b576c3a678b320f0827.png

*checkbox 标签

checkbox 标签将呈现为一个 HTML 复选框元素. 该复选框元素通常用于提交一个布尔值 当包含着一个复选框的表单被提交时, 如果某个复选框被选中了, 它的值将为 true,

这个复选框在 HTTP 请求里增加一个请求参数.但如果该复选框未被选中, 在请求中就不会增加一个请求参数.

checkbox 标签解决了这个局限性, 它采取的办法是为单个复选框元素创建一个配对的不可见字段

7d7e3132518d8e2aaa6d21428b4691d7.png

e2299a976adcc00d9f98c50e373ad8b2.png

555592db374ac1cb3ffb8a208e8558e1.png

c9ddf5f62137b7dd95b048e3ac9696c5.png

*checkbox 标签

checkbox 标签有一个 fieldValue 属性, 该属性指定的值将在用户提交表单时作为被选中的单选框的实际值发送到服务器.

如果没有使用 fieldValue 属性, 单选框的值将为 true 或 false.

0f96d2173b8673d777fdf0c2e477dcfe.png

示例:

a95e6eb387d66903ad812358e69d5ac6.png

list, listKey 和 listValue 属性

示例:

c9a6542185f915c145a0ccdf559cc0bc.png

list, listKey 和 listValue 属性

赋值为一个Map:

8e9290cc16dbfa67b1d997c4b7b1a3ae.png

赋值为一个 Collection(或一个对象数组): 把数组或 Collection 赋值给 list 属性,

把用来提供选项值的对象属性赋给 listKey 属性, 把用来提供选项行标的对象属性赋给 listValue 属性

49e3872de30c5174b770f518184b904c.png

1cd97a0f65960bc6772f98244db8d495.png

94f514c92da72e9c9a465de196cdaedb.png

radio 标签

radio 标签将呈现为一组单选按钮, 单选按钮的个数与程序员通过该标签的 list 属性提供的选项的个数相同.

一般地, 使用 radio 标签实现 “多选一”, 对于 “真/假” 则该使用 checkbox 标签.

d0dc90313b239cdb53e01d4570208d87.png

示例:

d79a02e3bf763ba4c2dc540f1d81ca89.png

select 标签

select 标签将呈现一个 select 元素.

48cc2166078288886d13202c7ffccf77.png

示例:

18c18781152fc1d3c5aab8f2037efdb8.png

optiongroup 标签

optiongroup 标签对 select 元素所提供的选项进行分组. 每个选项有它自己的来源.

2c3d32e671b9af7792b533b4862a85c7.png

示例:

769aa8d87b969fc4c39e48a71e9c67bc.png

checkboxlist 标签

checkboxlist 标签将呈现一组多选框.

a91d82b4f30da54365094f7ca0031f77.png

checkbox 标签被映射到一个字符串数组或是一个基本类型的数组.

若它提供的多选框一个也没有被选中, 相应的属性将被赋值为一个空数组而不是空值.

示例:

1f7389269afc2430858aa35096ea4130.png

744047e41b8609aac60abd05a780a39f.png

主题

默认情况下, form 标签将呈现为一个 HTML form 元素和一个 table 元素.

e4e4619392584593d2b3916d09f6b17e.png

每一种输入标签都将呈现为一个带标号的输入元素, 而这个输入元素将被包含在一个 tr 元素和 td 元素的内部

52e65a324cd4e4b7073bb68d3842bf47.png

主题: 为了让所有的 UI 标签能够产生同样的视觉效果而归集到一起的一组模板.

即风格相近的模板被打包为一个主题

simple: 把 UI 标签翻译成最简单的 HTML 对应元素, 而且会忽视行标属性

xhtml: xhtml 是默认的主题. 这个主题的模板通过使用一个布局表格提供了一种自动化的排版机制.

css_xhtml: 这个主题里的模板与 xhtml 主题里的模板很相似, 但它们将使用 css 来进行布局和排版 ajax:

这个主题里的模板以 xhtml 主题里德模板为基础, 但增加了一些 Ajax 功能.

修改主题: 通过 UI 标签的 theme 属性 在一个表单里, 若没有给出某个 UI 标签的 theme 属性,

它将使用这个表单的主题 在 page, request, session 或 application 中添加一个 theme 属性 修改 struts.properties 文件中的 struts.ui.theme 属性.

2763f2c280113f933948327464d1754f.png

Role.java

package com.yuyi.struts.valueStack.app;public classRole {privateInteger roleId;privateString roleName;publicInteger getRoleId() {returnroleId;

}public voidsetRoleId(Integer roleId) {this.roleId =roleId;

}publicString getRoleName() {returnroleName;

}public voidsetRoleName(String roleName) {this.roleName =roleName;

}publicRole(Integer roleId, String roleName) {

super();this.roleId =roleId;this.roleName =roleName;

}publicRole() {//TODO Auto-generated constructor stub

}

}

Department.java

packagecom.yuyi.struts.valueStack.app;public classDepartment {privateInteger deptId;privateString deptName;publicString getDeptName() {returndeptName;

}public voidsetDeptName(String deptName) {this.deptName =deptName;

}publicInteger getDeptId() {returndeptId;

}public voidsetDeptId(Integer deptId) {this.deptId =deptId;

}publicDepartment(Integer deptId,String deptName) {super();this.deptName =deptName;this.deptId =deptId;

}publicDepartment() {//TODO Auto-generated constructor stub

}

}

Dao.java

packagecom.yuyi.struts.valueStack.app;importjava.util.ArrayList;importjava.util.List;public classDao {public ListgetRoles(){

List roles=new ArrayList<>();

roles.add(new Role(2001,"XX"));

roles.add(new Role(2002,"YY"));

roles.add(new Role(2003,"ZZ"));returnroles;

}public ListgetDepartments(){

List depts=new ArrayList<>();

depts.add(new Department(1001,"AAA"));

depts.add(new Department(1002,"BBB"));

depts.add(new Department(1003,"CCC"));

depts.add(new Department(1004,"DDD"));

depts.add(new Department(1005,"EEE"));returndepts;

}

}

Employee.java

packagecom.yuyi.struts.valueStack.app;importjava.util.List;importjava.util.Map;importorg.apache.struts2.interceptor.RequestAware;public class Employee implementsRequestAware{private Dao dao=newDao();privateString name;privateString password;privateString gender;privateString dept;private Listroles;privateString desc;publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}publicString getGender() {returngender;

}public voidsetGender(String gender) {this.gender =gender;

}publicString getDept() {returndept;

}public voidsetDept(String dept) {this.dept =dept;

}public ListgetRoles() {returnroles;

}public void setRoles(Listroles) {this.roles =roles;

}publicString getDesc() {returndesc;

}public voidsetDesc(String desc) {this.desc =desc;

}publicString save() {

System.out.println("save"+this);return "save";

}publicString input() {

requestMap.put("depts", dao.getDepartments());

requestMap.put("roles", dao.getRoles());return "input";

}private Map requestMap=null;

@Overridepublic void setRequest(Maprequest) {this.requestMap=request;

}

@OverridepublicString toString() {return "Employee [name=" + name + ", password=" + password + ", gender=" + gender + ", dept=" +dept+ ", roles=" + roles + ", desc=" + desc + "]";

}

}

index1.jsp

Insert title here

Emp Input Page

emp-input.jsp

Insert title here

emp-save.jsp

Insert title here
Password:${password}
Gender:${gender}
Dept:${dept}
Roles:${roles}
Desc:${desc }

struts.xml

/p>

"http://struts.apache.org/dtds/struts-2.3.dtd">

method="save">

/emp-save.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值