请教在backing bean中生成<s:decorate>标签的问题

garyt 2008-12-08
在xhtml页面中,有一个控件是这样的:
<rich:panel binding="#{testBean.panel}">

当页面加载时,根据需要,向这个panel中会添加一些input.由于需要验证这些input的内容,所以想使用<s:decorate>来加入一个模板,这样在backing bean中生成这部分控件时会少写一部分代码.

在backing bean中我是这样写的:
    private HtmlDecorate createDecorate() {
        HtmlDecorate decorate = new HtmlDecorate();
        decorate.setTemplate("edit.xhtml");
        decorate.setId("input1");
        HtmlInputText input = createInput();
        HtmlAjaxSupport support = new HtmlAjaxSupport();
        support.setEvent("onblur");
        support.setBypassUpdates(true);
        support.setReRender(decorate);
        input.getChildren().add(support);
        decorate.getChildren().add(input);
        return decorate;
    }


上面这段代码中,
decorate.setTemplate("edit.xhtml");
这句是给HtmlDecorate设置template属性,就像
<s:decoraete template="edit.xhtml">
一样.

但是这样做,访问页面时没有任何效果,通过firebug看,HtmlDecorate生成的DIV是加上了,但是没有加载上设置的模板.在网上查了下,没有发现有在backing bean中生成<s:decorate>的例子.

请各位给点提示呢,是不是这个template属性不是设置模板文件的路径呢?
garyt 2008-12-08
对了,补充一下,
HtmlInputText input = createInput();
返回的input已经设置了Required属性为true,代码如下

    private HtmlInputText createInput() {
        HtmlInputText input = new HtmlInputText();
        input.setRequired(true);
        input.setRequiredMessage(messages.get("form.required"));
        return input;
    }
Global site tag (gtag.js) - Google Analytics