0

私は(現時点で)2つのフィールドを含むフォームを持っており、以下を送信します。

capture.id = 213
capture.description = DescriptionText

ターゲットオブジェクトの「capture」は不変であり、両方の値を取得してコンストラクターを呼び出す型コンバーターを提供したいと思います。私ができないように見えるのは、TypeConverterによって呼び出されるようにすることです。

入力が単純​​な場合:

capture = foo

次に、型コンバーターが呼び出されますが、これは明らかにあまり役に立ちません。ognlに、残りの型会話を委任して、パラメーターのマップを渡すようにすることはできますか?

何か案は?これはstruts2でも可能ですか

バージョン:struts 2.0.14&ognl 2.6.11

編集:私はこれについて少し読んだことがあり、私の次の試みは良い計画であるように思えました。私の理論では、Map構文を使用すると、Ognlが値をマップに変換し、そのマップを使用してコンバーターを呼び出して、値に変換するというものでした。

capture[id] = 213
capture[description] = DescriptionText

いいえ、まったく違いがないようです。

4

2 に答える 2

1

私がこれを行った方法は、JSPに次のものを含めることでした:

<s:textfield name="capture" value="capture.id" />
<s:textfield name="capture" value="capture.description" />

型コンバーターでは、convertFromString メソッドの String[] values パラメーターに、新しい不変キャプチャを構築するために必要な両方の値が含まれます。テキスト フィールドの順序に一貫性がある場合 (または、タグ ファイルにカプセル化する場合)、values 配列のインデックスを使用して、キャプチャ オブジェクトの適切なフィールドを確実に取得できます。

このアプローチの奇妙な点の 1 つは、convertToString メソッドが実際には何もしないことです。id または description を返す (またはそれらを連結する) ことができますが、JSP で値属性を使用しているため、問題ありません。

于 2012-03-28T23:38:47.147 に答える