0

Struts(2)のUIタグを使用すると、より多くのHTML要素が自動的に生成されます。たとえば、それを定義する場合、 (そのようなテーブルは私たちによって宣言されていなくても)内<s:form ... >に含まれます。したがって、いずれかが使用されている場合(たとえば、divタグが使用され、に応じて入力要素が配置されている場合)、自動生成された要素とその位置のために、すべての要素が期待どおりに表示されません。支柱がそのような要素を生成することを許可されていて、CSSを追加する場合でも、さまざまな位置とサイズでより多くの要素が生成されるため、自動生成されたhtml要素を設計するためにcssを追加するために別のウェイトを退屈させる必要があります。また、私が感じているように、より多くのhtmlコードがブラウザページの読み込み時間に影響を与える可能性があります。formtableCSSCSS

それで、struts UIタグが使用されているときにそのような要素の生成を回避する方法

ありますか、それともStruts UIタグでCSSを操作する便利な方法がありますか?(Stackoverflowで質問を読んだところ、ストラットが生成したcssを最終的に追加するという答えがありました。しかし、通常のjsp html設計レベルと比較するとそれほど簡単ではありません。)

4

2 に答える 2

4

要するに、Struts2はテーマの概念に取り組み、箱から出して特定のテーマを提供します。選択したテーマに基づいて、ビューをレンダリングするときに使用されるタグのHTMLコードが生成されます。

テーマは、Struts2の非常に素晴らしく美しいコンセプトであり、要件に応じてカスタムテーマを作成する方法も提供します。

デフォルトで質問に来るStruts2はxhtmlテーマを使用します。これは、使用されたタグのHTMLをレンダリングするときに、HTML(名前が提案するテーブルを含む)を生成することを意味します。

struts.propertiesファイルまたはstruts.xmlファイルのいずれかで単純なテーマを指定することにより、HTML生成を制御できます。

Strutsプロパティファイル

struts.ui.theme=simple

Struts.xmlファイル

<constant name="struts.ui.theme" value="simple" />

箱から出してS2によって提供されている他のテーマは

  • css_xhtml:divベースのHTMLを生成します
  • ajax:ajaxタグ用

単純なテーマは余分なHTMLを生成せず、同等のHTMLコードにタグを付けるだけであり、独自のCSSやその他のプロパティを提供することでビューをカスタマイズするための完全な制御が可能であることに注意してください。

上記のプロパティファイルとstruts.xmlの設定は、アプリケーション全体に適用されます。つまり、すべてのタグがアプリケーション全体に対して同じHTMLを生成します。さらに、タグごとのHTML生成を制御する場合は、各S2タグをプロパティとして、つまりtheme、 simple、css_xhtmlなどのこのプロパティに値を提供して、タグごとのHTML生成を制御します。

次のコードを使用して、リクエストごとにテーマを制御するもう1つの方法があります <s:set name="theme" value="'simple'" scope="page" />または

<s:set name="theme" value="%{myTheme}" scope="page" />

どちらに行きたいかはあなた次第です。

于 2012-06-17T11:53:32.463 に答える
1

theme="simple" タグに追加します。

サンプルコード:

<s:select id="..." list="..." theme="simple">
于 2013-02-11T15:06:29.773 に答える