我正在使用Struts 2.3的<s:checkbox>
以下是代码行
<s:checkbox theme="simple" name ="Mychkbox" value="R" onclick="Auto_Au('rej');"/>
现在在这里我需要这个值在行动,但我没有找到任何方法来设置这个值“R”,因为fieldValue
参数<s:checkbox>
将给出真或假。
我需要将值设置为“R”,可以在操作类中进行访问
有没有人这样做过。任何帮助将不胜感激。
如果您使用私有布尔Mychkbox;它给出了像true或false的结果。使它更正为布尔值为String数据类型。
你的值必须在fieldValue =“R”中设置
action.jsp
<s:form action="mylogin">
<s:checkbox theme="simple" name ="Mychkbox" fieldValue="R" value="true" onclick="Auto_Au('rej');"/>
</s:form>
MyAction.class
private String Mychkbox;
public String execute() throws Exception {
System.out.Println(" vaue : "+Mychkbox);
}
value attributes-boolean type。(UI组件值集)
fieldValue属性 - 字符串类型(Mychkbox的值)
<s:checkbox name="checkMe" fieldValue="true" label="Check Me for testing"/>
这是Checkbox的语法。使用相同的名称(此处名称为'checkMe')并在动作类中添加getter和setter方法,我们可以在动作类中获取此值。示例:我的Action.class
private String checkMe;
public String getCheckMe() {
return checkMe;
}
public void setCheckMe(String checkMe) {
this.checkMe = checkMe;
}
通过使用getCheckMe()方法,我们可以获得复选框'checkMe'的值。
在您的示例中,使用“mychkbox”而不是“checkMe”。这个网站有一个简单的例子/ Struts 2 checkbox Checkbox Example
您需要使用以下setter在目标Action中使用属性
setMychkbox(String mychkbox){
this.mychkbox = mychkbox;
}
但是你在name
属性中使用大写字母,这将阻止Struts2正确映射。
将其更改为
<s:checkbox theme="simple" name ="mychkbox" value="R" onclick="Auto_Au('rej');"/>
用小写字母启动m
使它工作。
默认情况下提交的checkbox
输入字段的值设置为true
。您可以通过提供fieldValue
标记的checkbox
属性来更改此设置。例如
<s:checkbox theme="simple" name ="mychkbox" fieldValue="R" onclick="Auto_Au('rej');"/>
如果要预设input元素的值,则应提供value
属性。例如
<s:checkbox theme="simple" name ="mychkbox" fieldValue="R" value="%{mychkbox}" onclick="Auto_Au('rej');"/>
请注意,为了更好的可读性,我更改了字段的名称。要将字段名称映射到操作bean,您应该为mychkbox
提供属性。
private String mychkbox;
public String getMychkbox() {
return mychkbox;
}
public void setMychkbox(String mychkbox) {
this.mychkbox= mychkbox;
}
默认的拦截器堆栈包括checkbox interceptor,您应该为其指定uncheckedValue
参数。为此,您应该覆盖拦截器的参数
<interceptor-ref name="checkbox">
<param name="uncheckedValue">undefined</param>
</interceptor-ref>