至
我正在将复选框从Struts1迁移到Struts2。所以我改变了Struts1的代码
<html:checkbox style="border:0px" property="eDir" disabled="true"/>
至
<s:checkbox theme="simple" style="border:0px" name="eDir" disabled="true"></s:checkbox>
但是,即使值是true
,我也不会得到选中的复选框
下面是两者的html脚本
Struts1 html:
<input type="checkbox" name="eDir2ColTrue" value="on" checked="checked" disabled="disabled" style="border:0px">
Struts2 html:
<input type="checkbox" name="eDir2ColTrue" value="true" disabled="disabled" id="eDir2ColTrue" style="border:0px">
<input type="hidden" id="__checkbox_eDir2ColTrue" name="__checkbox_eDir2ColTrue" value="true" disabled="disabled">
该字段是布尔型.I,它在操作类中的值从模型object..but中得到,但仍未被检查。
更新:
我试过了,但没有编译
<s:checkbox theme="simple" style="border:0px" key="eDir" disabled="true" <s:if test='${eDir}' >checked="checked"</s:if>></s:checkbox>
Update1:
我尝试过这样做,但是没有选中属性,因此尽管它的值为true,也不会被选中。
<s:checkbox theme="simple" style="border:0px" key="eDir" disabled="true" value="%{#eDir}"></s:checkbox>
Update2:
当我打印(即<c:out value="${eDir}"></c:out>
)时,我得到的值为true
,但与将其放入value属性时一样,它仍然没有已检查的属性。
<s:checkbox theme="simple" style="border:0px" key="eDir" disabled="true" value="${eDir}"></s:checkbox>
发布于 2014-11-05 01:45:56
Struts2 checkbox
标记的行为与其在Struts1中的模拟不同。
而且,正如您已经提到的,Struts2为单个复选框创建了两个input
字段--一个用于checked
值,另一个用于未选中的值。
然后通过其中一个被检查的。默认的拦截器堆栈包括处理提交值的 interceptor。
如果您使用的是Struts2复选框,并且希望使用字段值而不是布尔值,那么应该使用fieldValue
属性。
<s:checkbox theme="simple" cssStyle="border:0px" name="eDir" disabled="true" fieldValue="on"/>
https://stackoverflow.com/questions/26753110
复制相似问题