2010-12-14 6 views
0

Struts 2 라디오 버튼 작업 중입니다. 내가 내 액션 클래스에서 목록을 검색하고 싶지만는 다음 오류를주고있다Struts 2 라디오 버튼 목록

org.apache.jasper.JasperException : 태그 '라디오'필드 '목록', 이름 'user.yourGender' 요청한 목록 키 '# user.gender'는 이 컬렉션/배열 /지도/열거/반복기 유형으로 해결 될 수 없습니다. . 예 : 사람이나 사람 {이름} -

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"; 
} 

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> 

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>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> 
+0

당신은 귀하의 질문에 더 나은 포맷 할 수 있다면 도움이 될 것이다 [힌트를 다음 '코드'포맷을 사용]. 라디오 버튼에 사용하는 html 코드는 무엇입니까? anirvan으로서 – anirvan

+0

은 코드 포맷팅 버튼 ​​(1010으로 레이블 된 코드 포맷터 버튼)을 사용하여 코드를 포맷팅합니다. 나는 이번에 너를 위해 그것을했다. – Nivas

답변

0

는 당신에게 목록 gender는 JSP에서 null 아닌 것은 확실합니까?

가 null의 경우, 스트럿이 표시되지 않으며, 따라서이 아니라고 생각

+0

아니, 사실은 내가 라디오 사용자 액션 생성자의 목록을 생성했습니다 – shahid

+0

아무도 도와 줄 사람이 없습니다 – shahid

+0

@ user541595 당신은 당신이 목록을 생성했다고 말합니다. 그러나 액션 클래스 예제에서는 그 것을 보여주지 않았습니다. 이 특정 JSP 전에 목록이 인스턴스화되고 채워 졌는지 확인하십시오. 반드시 액션 클래스의 끝에서 프린트/디버깅을 원할 수 있습니다. – Nivas