Java 列挙でドロップダウン メニューを使用すると、Stripes は、列挙を表す実際の文字列ではなく、ある種のバイナリ コンテンツを返します。
詳細については、次の 2 つのドロップダウン メニューが SQL クエリでどのように変換されるかを確認してください。
<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()
その列挙をString
.
以前の JSP から、SQL クエリを作成した後、クエリで次の where 句を取得しています (例として、最初のドロップダウン メニューから "ITEM1" を選択し、2 番目のドロップダウン メニューから "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
が、これはまだ機能していません。
一方、これらのバイナリ設定を削除しanother_enum_to_chose = 'ENUM1'
、SQL where 句で直接使用すると、データベースから期待するレコードを取得できます。
ヒントはありますか?