Strutsのhtmlライブラリの<html:textarea>にはwrap属性が
用意されていない。
ということで、ライブラリを拡張してwrap属性を装備することにした。
手順は意外と簡単。
まず、org.apache.struts.taglib.html.TextareaTagをextendsした
オリジナルのtextareaクラスを作成して、wrap変数を持たせて
変数を有効にする。
public class ExTextareaTag extends org.apache.struts.taglib.html.TextareaTag {
/** wrap属性 */
private String wrap;
/**
* wrap属性を取得
* @return the wrap
*/
public String getWrap() {
return wrap;
}
/**
* wrap属性を設定
* @param wrap the wrap to set
*/
public void setWrap(String wrap) {
this.wrap = wrap;
}
/**
* wrap属性を有効とする
*/
@Override
protected void prepareOtherAttributes(StringBuffer handlers) {
prepareAttribute(handlers, "wrap", getWrap());
}
}
さて、次はstruts-html.tldの拡張。
textareaのタグを探してコピペ。nameとtagclassを変更、
attributeにwrapを追加。
ちなみに、requiredにtrueを設定すると属性が必須になる。
wrap属性は必須ではないのでfalseを設定。
rtexprvalueは、属性値をJSPのスクリプトで指定できるか。
一応、trueにしておく。
<tag>
<name>extextarea</name>
<tagclass>util.ExTextareaTag</tagclass>
<attribute>
<name>wrap</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
以降はtextareaと同じ
最後に実際のJSPの指定方法。
htmlタグの名前にextextareaを指定するだけ。
<html:extextarea property="xxxxx" rows="5" cols="54" wrap="phycical" />
完成!
用意されていない。
ということで、ライブラリを拡張してwrap属性を装備することにした。
手順は意外と簡単。
まず、org.apache.struts.taglib.html.TextareaTagをextendsした
オリジナルのtextareaクラスを作成して、wrap変数を持たせて
変数を有効にする。
public class ExTextareaTag extends org.apache.struts.taglib.html.TextareaTag {
/** wrap属性 */
private String wrap;
/**
* wrap属性を取得
* @return the wrap
*/
public String getWrap() {
return wrap;
}
/**
* wrap属性を設定
* @param wrap the wrap to set
*/
public void setWrap(String wrap) {
this.wrap = wrap;
}
/**
* wrap属性を有効とする
*/
@Override
protected void prepareOtherAttributes(StringBuffer handlers) {
prepareAttribute(handlers, "wrap", getWrap());
}
}
さて、次はstruts-html.tldの拡張。
textareaのタグを探してコピペ。nameとtagclassを変更、
attributeにwrapを追加。
ちなみに、requiredにtrueを設定すると属性が必須になる。
wrap属性は必須ではないのでfalseを設定。
rtexprvalueは、属性値をJSPのスクリプトで指定できるか。
一応、trueにしておく。
<tag>
<name>extextarea</name>
<tagclass>util.ExTextareaTag</tagclass>
<attribute>
<name>wrap</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
以降はtextareaと同じ
最後に実際のJSPの指定方法。
htmlタグの名前にextextareaを指定するだけ。
<html:extextarea property="xxxxx" rows="5" cols="54" wrap="phycical" />
完成!