HTMLのhiddenタグのvalueの値をJsonを用いて、サーバーサイドに送り、それを受信するという処理を行う際に、org.apache.turbine.util.RunData.javaとorg.apache.velocity.tools.generic.ValueParser.javaは非常に役に立つ。
以下はRunDataクラスのgetParametersメソッドについて
getParameters
org.apache.fulcrum.parser.ParameterParser getParameters()
Gets the parameters.
Returns:
a parameter parser.
以下はValueParserクラスのgetStringsメソッドについて
getStrings
public java.lang.String[] getStrings(java.lang.String key)
Parameters:
key – the key for the desired parameter
Returns:
an array of String objects containing all of the values associated with the given key, or null if the no values are associated with the given key
例えばinputタグでname=”hoge”のvalueを一度にたくさん送信し、サーバーサイドで一斉に受信する場合は以下のようになる。
HTML文
<input name="hoge" type="hidden" value="hogehoge1"> <input name="hoge" type="hidden" value="hogehoge2"> <input name="hoge" type="hidden" value="hogehoge3">
import org.apache.turbine.util.RunData; public String[] getHoge(RunData rundata) { String hogeList[] = rundata.getParameters().getStrings("hoge"); return hogeList; }
これで複数飛ばした値を配列に格納して、得ることができる。
ただ一つ問題があり、この方法だと日本語は文字化けを起こしてしまう。
正しい文字コードに変換して、文字化けを直す方法は、こちらに記載した。