2012-01-24 11 views
0

私はいくつかのhtml要素のレンダリングを担当するJavaクラスを持っており、それらに対して事前定義されたタグをいくつか作成しています。Stringとして取得されたJSPタグは実行されません

public class StartDateField { 

private static StartDateField object; 

private StartDateField(){} 

public static StartDateField getInstance(){ 

    if(object == null){ 
     object = new StartDateField(); 
    } 
    return object; 
} 

public String render(){ 
    String field = "<field:text name='first_name' size='65' maxlen='63' style='field' />"; 
    return field; 
} 

}

それから

<td colspan="2"> 
<%=StartDateField.getInstance(SUBpagebean).render()%> 
</td> 

(上記クラスへのインポートを有する)JSPタグ内方法をレンダリングすることを呼び出すことを試みたが、それは何も表示されません。ソースを見ると、タグを実行する代わりに返されたテキストが表示されます。これはどのようにして起こり、どのように解決できますか?

答えて

1

<%= someExpression() %>は、Java式someExpression()を評価し、その結果をHTTP応答ライターに書き込むことを意味します。だから明らかに、あなたは<field:text name='first_name' size='65' maxlen='63' style='field' />をレスポンスに直接書きます。

JSPタグは、評価するJSPの静的ソースコードに含まれている必要があります。

JSTLはタグの標準ライブラリです。 <field:text>はカスタムJSPタグです。これはJSTLタグではありません。

+0

あなたの良い説明のためのJB。実際に私はいくつかのユーザー定義フィールドを生成する方法に取り組んでいます。あなた一人一人が、カスタムタグをレスポンスで送信してレンダリングする方法はありませんか? – keth

+1

JSPタグはサーバー側で実行されます。それらはブラウザによって実行されません。応答にJSPタグを送信することは意味がありません。 –

+0

Great thanx ...自分でカスタムタグを初期化できず、JSPのような関連するメソッドを呼び出すことはできませんpublic void renderTag(){ \t \t BeanFieldTagタグ= new BeanFieldTag(); \t \t tag.setName(this.subPageBean); \t \t tag.setProperty( "sch_event_name"); \t \t tag.setSize( "30"); \t \t tag.setMaxlen( "100"); \t \t tag.setStyle( "field"); \t \t \t \t tag.doEndTag(); \t} – keth

関連する問題