Java Struts 2单选按钮列表
我正在使用Struts 2单选按钮。 我想从action类中检索列表,但它给出了以下错误 org.apache.jasper.jaspereException:tag “收音机”,字段“列表”,名称 “user.yourGender”:请求的列表 无法输入键“#user.gender” 决议为 集合/数组/映射/枚举/迭代器 类型。示例:人或人。{name} -[未知位置] 我的操作类和用户类如下Java Struts 2单选按钮列表,java,jsp,struts2,ognl,valuestack,Java,Jsp,Struts2,Ognl,Valuestack,我正在使用Struts 2单选按钮。 我想从action类中检索列表,但它给出了以下错误 org.apache.jasper.jaspereException:tag “收音机”,字段“列表”,名称 “user.yourGender”:请求的列表 无法输入键“#user.gender” 决议为 集合/数组/映射/枚举/迭代器 类型。示例:人或人。{name} -[未知位置] 我的操作类和用户类如下 HelloAction package com.geekcap.struts2.action;
HelloAction
package com.geekcap.struts2.action;
import com.geekcap.struts2.model.User;
import com.opensymphony.xwork2.ActionSupport;
import java.util.List;
import java.util.ArrayList;
public class HelloAction extends ActionSupport
{
private User user;
public String execute() throws Exception
{
return "success";
}
public void validate()
{
if(user.getName().length()==0)
{
addFieldError("user.name", "User Name is required");
}
if(user.getAge()==0)
{
addFieldError("user.age","Age is required");
}
if(user.getPassword().length()==0)
{
addFieldError("user.password","Please enter your password !");
}
/* if(user.getGender().equals("-1"))
{
addFieldError("user.gender","Please select gender !");
}*/
}
public User getUser()
{
return user;
}
public void setUser(User userbean)
{
user=userbean;
}
}
用户类
package com.geekcap.struts2.model;
import java.util.List;
import java.util.ArrayList;
public class User
{
private String name,password;
// private List like;
private int age;
private List<String> gender;
private String yourGender;
public User()
{
gender= new ArrayList<String>();
gender.add("MALE");
gender.add("FEMALE");
gender.add("UNKNOWN");
}
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 int getAge()
{
return age;
}
public void setAge(int age)
{
this.age=age;
}
public List<String> getGender()
{
return gender;
}
public void setGender(List<String> gender)
{
this.gender=gender;
}
public void setYourGender(String yourGender)
{
this.yourGender=yourGender;
}
public String getYourGender()
{
return yourGender;
}
public String getDefaultGenderValue()
{
return "UNKNOWN";
}
package com.geekcap.struts2.model;
导入java.util.List;
导入java.util.ArrayList;
公共类用户
{
私有字符串名称、密码;
//私人列表类;
私人互联网;
私人名单性别;
私人的性别;
公共用户()
{
性别=新ArrayList();
性别。添加(“男性”);
性别。添加(“女性”);
性别。添加(“未知”);
}
公共字符串getName()
{
返回名称;
}
公共void集合名(字符串名)
{
this.name=名称;
}
公共字符串getPassword()
{
返回密码;
}
public void setPassword(字符串密码)
{
this.password=密码;
}
公共整数getAge()
{
回归年龄;
}
公共无效设置(整数)
{
这个。年龄=年龄;
}
公共列表getGender()
{
返回性别;
}
公共性别(列出性别)
{
这个。性别=性别;
}
public void设置yourGender(字符串yourGender)
{
你的性别=你的性别;
}
公共字符串getYourGender()
{
返回你的性别;
}
公共字符串getDefaultGenderValue()
{
返回“未知”;
}
helloForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ 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>Welcome to Struts 2</title>
</head>
<body>
<s:form action="Hello">
<s:textfield name="user.name" label="User name" value="shahid"/>
<s:password name="user.password" label="Password"/>
<s:textfield name="user.age" label="Age"/>
<s:radio label="Gender" name="user.yourGender" list="user.gender" value="defaultGenderValue"/>
<s:submit/>
</s:form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ 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>Hello, Struts 2</title>
</head>
<body>
<h4>
Hello, <s:property value="user.name"/>!
<br>Your password :<s:property value="user.password"/></br>
<br>your age :<s:property value="user.age"/></br>
<br>Gender :<s:property value="user.yourGender"/></br>
</h4>
</body>
</html>
欢迎来到Struts 2
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ 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>Welcome to Struts 2</title>
</head>
<body>
<s:form action="Hello">
<s:textfield name="user.name" label="User name" value="shahid"/>
<s:password name="user.password" label="Password"/>
<s:textfield name="user.age" label="Age"/>
<s:radio label="Gender" name="user.yourGender" list="user.gender" value="defaultGenderValue"/>
<s:submit/>
</s:form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ 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>Hello, Struts 2</title>
</head>
<body>
<h4>
Hello, <s:property value="user.name"/>!
<br>Your password :<s:property value="user.password"/></br>
<br>your age :<s:property value="user.age"/></br>
<br>Gender :<s:property value="user.yourGender"/></br>
</h4>
</body>
</html>
你好,Struts 2
你好
您的密码:
您的年龄:
性别:
您确定JSP中的列表gender
不是null
如果为空,struts将看不到它,因此认为它不在那里如果您可以更好地格式化您的问题,这将非常有用[提示:使用“代码”格式化程序]。单选按钮使用的html代码是什么?正如anirvan所说,使用“代码格式化程序”按钮(标记为1010的按钮)设置代码格式。我这次已经为您完成了。不,它不是空的,事实上我已经在用户操作中为无线电生成了列表constructor@user541595您说您已经生成了该列表。但是在action类示例中,您没有显示该列表。请确保在这个特定JSP之前实例化并填充了列表。您可能希望nt/在动作类结束时调试它。谢谢你的建议,我得到了解决方案。