Struts2 表单的综合应用案例

版权声明:博客知识产权来源命运的信徒,切勿侵权 https://blog.csdn.net/qq_37591637/article/details/84957173

 显示如下页面

 两个action类

package cn.com.action;

public class Role {
private Integer roleid;
private String rolename;
public Integer getRoleid() {
	return roleid;
}
public void setRoleid(Integer roleid) {
	this.roleid = roleid;
}
public String getRolename() {
	return rolename;
}
public void setRolename(String rolename) {
	this.rolename = rolename;
}
@Override
public String toString() {
	return "Role [roleid=" + roleid + ", rolename=" + rolename + "]";
}
public Role(Integer roleid, String rolename) {
	super();
	this.roleid = roleid;
	this.rolename = rolename;
}
}
package cn.com.action;

public class Employ {
private Integer emid;
private String emname;
public Integer getEmid() {
	return emid;
}
public void setEmid(Integer emid) {
	this.emid = emid;
}
public String getEmname() {
	return emname;
}
public void setEmname(String emname) {
	this.emname = emname;
}
@Override
public String toString() {
	return "Employ [emid=" + emid + ", emname=" + emname + "]";
}
public Employ(Integer emid, String emname) {
	super();
	this.emid = emid;
	this.emname = emname;
}

}

 一个dao

package cn.com.action;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.struts2.interceptor.RequestAware;
public class Dao implements RequestAware{
/*author:命运的信徒
 * date:2018/12/11
 * arm:对struts2表单的应用
 */
	private List<Role> roles=new ArrayList<Role>();
	private List<Employ> employs=new ArrayList<Employ>();
	public List<Role> getRoles() {
		return roles;
	}
	public void setRoles(List<Role> roles) {
		this.roles = roles;
	}
	public List<Employ> getEmploys() {
		return employs;
	}
	public void setEmploys(List<Employ> employs) {
		this.employs = employs;
	}
	private Map<String, Object> request;
	@Override
	public void setRequest(Map<String, Object> arg0) {
		// TODO Auto-generated method stub
		request=arg0;
	}
	public String save(){
		
		roles.add(new Role(1, "jhon"));
		roles.add(new Role(2, "marry"));
		roles.add(new Role(3, "lily"));
		roles.add(new Role(4, "maza"));
		
		employs.add(new Employ(1, "teacher"));
		employs.add(new Employ(2, "student"));
		employs.add(new Employ(3, "doctor"));
		request.put("roles", roles);
		request.put("employs", employs);
		return "success";
	}
	
}

jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
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>struts2表单标签的示例</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">
  </head>
  
  <body>
  <s:debug></s:debug>
<s:form action="fb">
<s:textfield name="username" label="Name"></s:textfield>
<s:password name="password" label="Pass"></s:password>
<!-- 二选一的情况 -->
<s:radio name="xb" list="#{'0':'men','1':'women' }" label="性别"></s:radio>
<!-- list="取到的集合"  -->
<s:select list="#request.roles" listkey="roleid" listValue="rolename" name="role" label="姓名"></s:select>
<s:checkboxlist list="#request.employs" listKey="emid" listValue="emname" name="emy" label="角色"></s:checkboxlist>
<s:submit></s:submit>
</s:form>
  
  </body>
</html>

提交Action 类

package cn.com.action;
public class UserInfo {
private String username;
private String password;
private Boolean xb;
private String role;
private String emy;
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 Boolean getXb() {
	return xb;
}
public void setXb(Boolean xb) {
	this.xb = xb;
}

public String getEmy() {
	return emy;
}
public void setEmy(String emy) {
	this.emy = emy;
}


public String getRole() {
	return role;
}
public void setRole(String role) {
	this.role = role;
}
public String execute(){
	System.out.println(this.toString());
	
	return "success";
}
@Override
public String toString() {
	return "UserInfo [username=" + username + ", password=" + password
			+ ", xb=" + xb + ", role=" + role + ", emy=" + emy + "]";
}

}

显示页面

<body>
   名称:${username }<br>
   密码:${password }<br>
   性别:${xb }<br>
 职业:${role}<br>
 角色:${emy }<br>
  </body>

效果如下:

缺陷 所在:

我应该显示的是具体的职业和名称和性别,前端页面和后台的属性要一致,所以是String类型,但是我获取的是对象,怎么获取集合中一个属性?我觉得两者冲突了?

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/84957173