我无法获取页面中选择的单选按钮的值 我有一个JSP页面
<body>
<s:form action="/YYY" id="frmPersonalPage" name="frmPersonalPage" >
<s:radio name ="radio" list="skillMasterData"></s:radio>
</s:form>
</body>
这正确呈现。在我的struts.xml中,我有
<action name="YYY" class="com.tdi.atom.actions.CCC" method="showEditSkillMasterPage">
<result name ="success">/jsp/modules/skillmap/createskillmaster.jsp</result>
</action>
在我的动作课中,我有这个
public class CCC extends BaseActionSupport {
private ArrayList skillMasterData;
public String radio;
private ArrayList l1;
private ArrayList l2;
private ArrayList l3;
public ArrayList getSkillMasterData() {
return skillMasterData;
}
public void setSkillMasterData(ArrayList skillMasterData) {
this.skillMasterData = skillMasterData;
}
public String showEditSkillMasterPage()
{ log.info("at showEditSkillMasterPage");
System.out.println("radio buttoneee : "+getRadio());//this is null
setEditType("EDIT");
return SUCCESS;
}
public String showListSkillMasterPage()
{
SkillMasterDB pddb =new SkillMasterDB();
JdbcHelper helper;
l1 =new ArrayList();
l2=new ArrayList();
l3=new ArrayList();
l1.add("asda");
l1.add("rqwrq");
l2.add("!@@##");
l2.add("9087907");
l3.add("./,/");
l3.add("[][][]");
skdto.add(l1);
skdto.add(l2);
skdto.add(l3);
setSkillMasterData(skdto);
return SUCCESS;
}
public String getRadio() {
return radio;
}
public void setRadio(String radio) {
this.radio = radio;
}
}
在BaseActionSupport类我有
public class BaseActionSupport extends ActionSupport implements SessionAware {
private Map userSession;
public UserDTO user;
public UserDTO getUser() {
return mgr.getUser();
}
public boolean isAdmin() {
return mgr.isUserADMIN();
}
public void setSession(Map session) {
userSession = session; mgr = new SecurityManager(userSession);
}
}
我只是无法弄清楚为什么这么简单的代码无效。否则,非常相似的代码可以正常工作。
答案 0 :(得分:0)
你的代码中有一些奇怪的东西。
假设CCC
和YYY
是仅为在此处发布而创建的模糊名称(否则,您应该使用CamelCase
首字母大写为类名,例如MyAction
) ,
JavaBeans conventions
,然后userSession
应该成为session
,因为访问者方法(getter和setter)应该始终尊重私有变量的名称); skdto
变量未在您的showListSkillMasterPage
方法中初始化或定义; 我不确定使用ArrayList<ArrayList<String>>
单选按钮是否合适。您可以尝试使用简单的ArrayList<String>
,例如:
public String showListSkillMasterPage() {
SkillMasterDB pddb =new SkillMasterDB();
JdbcHelper helper;
List<String> skdto = new ArrayList<String>();
skdto.add("asda");
skdto.add("rqwrq");
skdto.add("!@@##");
skdto.add("9087907");
skdto.add("./,/");
skdto.add("[][][]");
setSkillMasterData(skdto);
return SUCCESS;
}
最后,您可以使用Firebug's Net module
测试页面的内容,现在检查无线电参数值,然后检查编辑后查看现在出现的问题及其进展情况(希望如此) )以后......