私はSpringアプリケーションに取り組んでおり、JSPXページでは、プロパティページからいくつかの値を動的にロードし、オプションタグを使用してドロップダウンとして設定する必要があります. オプション値と表示には同じテキストを使用する必要がありますが、オプション値についてはすべての特殊文字を削除する必要があります。
たとえば、値が母方の叔父の場合、必要です
<option value="MaternalUncle">Maternal Uncle</option>
私が得ているのは
<option value="Maternal Uncle">Maternal Uncle</option>
そのページを使用できる 2 つのアプリケーションがあり、ロードするプロパティ ファイルはアプリによって異なります。アプリ 1 の値を読み込むと、値が適切に表示されます。アプリ 1 の最後の値は「その他」で、特殊文字はありません。アプリ 2 では、最後の値が「Maternal Uncle」である空白は削除されません。コード内の repOptions は、プロパティ ファイルから値が読み込まれた ArrayList です。これが私のコードです:
<select name="person" id="person">
<option value="na">Select the relationship</option>
<c:forEach items="${repOptions}" var="repOption">
<option value="${fn:replace(repOption, '[^A-Za-z]','')}">${repOption}</option>
</c:forEach>
</select>
この値は 9 つのリストの 4 番目であるため、最初のアプリは空白を削除します。 app2 の場合、これは最後の値であり、正規表現は機能しません。Maternal Uncle を app2 の最初のプロパティとして配置すると、これは正常に機能しますが、要件はそれを最後のオプションにすることです。
<option value="${fn:replace(repOption, ' ','')}">
は空白に対して機能しますが、兄弟/姉妹のような値が存在する可能性があるため、/も削除する必要があるため、正規表現を使用しています。