現在、フォームに Struts2 タグを使用しており、エラー メッセージを表示しています。私の質問は、Struts2 タグでエラー メッセージを表示するためのデフォルトのマークアップは、タグの使用法であるということです<ul>
。とにかくこれを変更できますか?エラーメッセージを一覧ではなく表示したい<span>
。
どうすればこれを達成できますか?
もう 1 つのオプションは、UL 要素の CSS を変更することです。
このアプローチは、DOM 自体ではなく、特に外観に関心がある場合にのみ機能します。
問題を解決するために次のコードを使用したのと同じ問題がありました
<s:if test="fieldErrors.get('email').size() > 0">
<s:property value="fieldErrors.get('email').get(0)"/>
</s:if>
email は私のフィールドの名前です。この方法では、CSS を変更する必要はありません。
レンダリング エラーに使用されるテンプレート ファイルをオーバーライドできます。jar からテーマのファイルをアプリケーションにコピーactionerror.ftl
し、/タグを使用しないように変更します。fielderror.ftl
simple
struts2-core
ul
li
タグはテーマに従って表示されます。質問は次のように変わります: テーマをどのように変更しますか? タグ(タグのテーマ属性をシンプルに設定)、ページ、リクエスト、または一般的に変更できます。
http://struts.apache.org/2.2.1/docs/struts-2-themes.html
個人的には HTML を書くのが好きです。つまり、struts2 のデフォルト テーマの「ヘルプ」は好きではありません。したがって、私の struts.xml では、次のように単純に使用します。
<constant name="struts.ui.theme" value="simple" />
Web 開発者は html を知っている必要があります。
更新:
通常は YUI の reset.css を使用するので、おそらくこれを見逃していました...
アクションで ActionSupport を拡張すると、関連付けられたエラー メッセージ文字列をフォーマットなしで返すgetFieldErrors()
メソッドが使用できるようになります。<s:property value='fieldError["field_name"]'/>
タグよりも可読性が低いわけではありません<s:fielderror/>
...結局のところ、常にプロパティタグを使用する必要があります。
これは、Struts 2 の ActionError および ActionMessage クラスの使用方法を示すチュートリアルです。
http://www.mkyong.com/struts2/struts-2-actionerror-actionmessage-example/
ActionError – エラー フィードバック メッセージをユーザーに送信するために使用されます – < s:actionerror/ > を介して表示します
<s:if test="hasActionErrors()">
<div class="errors">
<s:actionerror/>
</div>
</s:if>
ActionMessage – 情報フィードバック メッセージをユーザーに送信するために使用され、 < s:actionmessage/ > を介して表示されます。
<s:if test="hasActionMessages()">
<div class="welcome">
<s:actionmessage/>
</div>
</s:if>