下拉菜单中的Stripes和Enumerate Java类

时间:2013-03-14 11:26:58

标签: java sql binary-data stripes

当使用带有Java枚举的下拉菜单时,Stripes会返回某种二进制内容,而不是应该代表枚举的实际字符串。

更多详细信息,请参阅SQL查询中如何转换以下2个下拉菜单:

<stripes:select name="firstDropDown" id="firstDropDown">
   <stripes:option value="">All</stripes:option>
   <stripes:option value="ITEM1">First item</stripes:option>
   <stripes:option value="ITEM2">Second item</stripes:option>
</stripes:select>

<stripes:select name="anotherEnumToChose" id="anotherEnumToChose">
   <stripes:option value="">I want them all</stripes:option>
   <stripes:options-enumeration enum="package.to.the.enumerate.AnotherEnumToChoseEnum" label="label" />
</stripes:select>

根据Stripes的说法,我设置了getLabel() Java方法(对于第二个下拉菜单),该方法正确地将枚举值返回为String

在上一个JSP中,在构建SQL查询之后,我在查询中获得了以下where子句(例如,我从第一个下拉菜单中选择“ITEM1”,并从第二个下拉菜单中获取“ENUM1”下菜单):

and     table.first_drop_down ='SMS' 
    and     another_enum_to_chose=_binary'��\0~r\02package.to.the.enumerate.AnotherEnumToChoseEnum\0\0\0\0\0\0\0\0\0\0xr\0java.lang.Enum\0\0\0\0\0\0\0\0\0\0xpt\0ENUM1' 

我没有成功评论<stripes:option value="">I want them all</stripes:option>,因为我认为它可能与<stripes:options-enumeration发生冲突,但这仍然无效。

另一方面,如果我删除这些二进制设置并在SQL where子句中直接使用another_enum_to_chose = 'ENUM1',那么我将从数据库中获取我期望的记录。

任何提示?

1 个答案:

答案 0 :(得分:0)

该问题与我正在使用的Enumerate Java类有关。为了获得枚举值,我现在使用标准文档name()中描述的java.lang.Enum方法。现在使用name()我100%确定我得到String而不是任何其他类型/对象。