3

struts-html を使用してフォーム フィールドを生成します。

例えば:

<%@ taglib prefix="html" uri="/WEB-INF/taglibs/struts-html.tld" %>

<html:text property="email" styleId="email" size="44"/>

生成:

<input type="text" name="email" size="44" value="" id="email"> 

上記のように、生成された入力タグは閉じられていません。これにより、html が無効になります。

struts-html.tld には以下が含まれます。

<tlibversion>1.2</tlibversion>
<jspversion>1.1</jspversion>
<shortname>html</shortname>
<uri>http://struts.apache.org/tags-html</uri>

生成された入力が閉じられない理由を誰かが知っていますか? 新しいバージョンはありますか?どこでダウンロードできますか?

私は使用してみました:

<html:html xhtml="true">

次のようにレンダリングされます。

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"> 

ただし、入力タグが閉じられずにレンダリングされ続けます。


解決:

次のタグを使用します。

<html:xhtml/>

注:私のように Tiles を使用する場合は、含まれている JSP 内で直接使用してください。基本テンプレート ファイルから継承されません。

注: xhtml モードでは、html:form タグ内で sytleId を使用できません。Bean の名前を格納するために id プロパティが自動的に生成されるため、問題はありません。

4

3 に答える 3

6

そのまま使えません<html:xhtml/>か?

このタグをページで使用すると、他のすべての html taglib タグに XHTML 1.0 としてレンダリングするように指示します

または、 を使用することもできます<html:html xhtml="true">

于 2009-01-15T11:18:43.583 に答える
0

inputタグは HTML で閉じる必要がないので、Struts は XHTML を生成しようとしていることを認識していないと思います。悲しいことに、私の Struts-fu は非常に古く、修正方法がわかりません。おそらく、XHTML ではなく HTML にフォールバックする必要があります。XHTML は、SVG や MathML などの他の名前空間を使用している場合にのみ真価を発揮します。

于 2009-01-15T11:10:35.817 に答える
0

実際の生成を行うバッキング Java コードが必要です。既にオープン ソース化されているため、ライブラリのソースを取得し、終了タグ ブラケット '>' を追加するときに、コードがいくつかのパラメーターを参照するかどうかを確認します。まったくそうでない場合は、ライブラリを変更して、パッチを適用したバージョンを使用し、パッチを提供してください。

于 2009-01-15T11:18:43.757 に答える