And*_*ios 2 jsp boolean struts2 type-conversion interceptorstack
我在搜索页面中有一个条件是boolean。由于它不是强制性的,因此我不能使用复选框,因为我可能想跳过它。
JSP
<s:select list = '#{ "":"Make your choice...", true:"FOO", false:"BAR" }'
name = "myBooleanCriterion" />
Run Code Online (Sandbox Code Playgroud)
行动
private Boolean myBooleanCriterion;
/* Getter and Setter */
Run Code Online (Sandbox Code Playgroud)
我们知道boolean默认为false,而Boolean默认为null,则第一次呈现页面时就可以了(显示“做出选择”)。
但是,在POST之后,Struts会实例化Boolean属性(默认为false),即使该属性找到""为值也是如此,因此当我返回JSP时,该值会预先选择为false(“ BAR”)。
如果值是"",则如何指示Struts不创建该变量的实例,将其保留为原始null状态?我是否需要创建一个Converter或在.properties文件中指定内容?(我从这个答案中获得的代码基本上与示例.2中的代码相同)
我正在使用(略有自定义)paramsPrepareParamsStack拦截器堆栈。
我觉得自己是否想念一些愚蠢的东西。
由于XWorkBasicConverterconvert boolean-s 与转换-s的方式完全相同,因此Boolean使用Boolean.valueOf()方法将空字符串or null转换为false。
为了null提交后,您需要为此创建一个自定义转换器,Boolean或者根本不提交此参数。(例如name,如果选择的值为,则使用javascript 更改属性"")。
| 归档时间: |
|
| 查看次数: |
1331 次 |
| 最近记录: |