Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RichFaces4,a4j:命令渲染另一个h:窗体_Java_Jsf 2_Richfaces_Seam2 - Fatal编程技术网

Java RichFaces4,a4j:命令渲染另一个h:窗体

Java RichFaces4,a4j:命令渲染另一个h:窗体,java,jsf-2,richfaces,seam2,Java,Jsf 2,Richfaces,Seam2,dataTable中的a4j:commandLink如何呈现另一个h:form的UI组件? 在tableForm中,当我单击部门datatable的编辑a4j:commandLink时,ajax无法呈现部门的entryForm。 我还尝试使用ajax:region它不工作,也不显示任何错误。我不知道为什么 <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

dataTable
中的
a4j:commandLink
如何呈现另一个
h:form
UI组件?
在
tableForm
中,当我单击部门
datatable
的编辑
a4j:commandLink
时,
ajax
无法呈现部门的
entryForm
。 我还尝试使用
ajax:region
它不工作,也不显示任何错误。我不知道为什么

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:s="http://jboss.org/schema/seam/taglib"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j"
    template="/layout/adminTemplate.xhtml">
    <ui:define name="body">
        <h:form id="entryForm">
            <h:outputText value="Edit Department" styleClass="subTitle"/>
            <h:panelGrid columns="2">
                <h:outputText value="Name : " styleClass="inputLabel"/>
                <h:inputText value="#{ManageDepartmentAction.department.name}" styleClass="inputText"/>

                <h:outputText value="Description : " styleClass="inputLabel"/>
                <h:inputTextarea value="#{ManageDepartmentAction.department.description}" cols="50" rows="6"/>      
            </h:panelGrid>
            <h:commandButton id="editBtn" value="Edit"  action="#{ManageDepartmentAction.editDepartment}"/>     
        </h:form> <br/>
        <h:form id="tableForm">
            <rich:dataTable value="#{ManageDepartmentAction.departmentList}" var="dep" id="departmentTable"
                            style="width:100%" rowKeyVar="index">
                <rich:column sortBy="#{dep.id}" style="width:200px;">
                    <f:facet name="header">
                        <h:outputText value="Department ID"/>
                    </f:facet>
                    <h:outputText value="#{dep.id}" styleClass="tableContent"/>
                </rich:column>
                <rich:column sortBy="#{dep.name}">
                    <f:facet name="header">
                        <h:outputText value="Name"/>
                    </f:facet>
                    <h:outputText value="#{dep.name}" styleClass="tableContent"/>
                </rich:column>
                <rich:column sortBy="#{dep.description}">
                    <f:facet name="header">
                        <h:outputText value="Description"/>
                    </f:facet>
                    <h:outputText value="#{dep.description}" styleClass="tableContent"/>
                </rich:column>
                <rich:column style="width:100px;text-align:center;">
                    <a4j:commandLink value="Edit-1" action="#{ManageDepartmentAction.prepareEditDepartment(dep)}" render="entryForm"/>

                    <a4j:commandLink value="Edit-2" action="#{ManageDepartmentAction.prepareEditDepartment(dep)}" render=":entryForm"/>

                    <a4j:commandLink value="Edit-3" action="#{ManageDepartmentAction.prepareEditDepartment(dep)}" render="tableForm :entryForm"/>
                </rich:column>
            </rich:dataTable>
        </h:form>
    </ui:define>
</ui:composition>

@Scope(CONVERSATION)
@Name("ManageDepartmentAction")
public class ManageDepartmentAction {

    public List<Department> departmentList;

    @In("#{DepartmentService}")
    private IDepartmentService departmentService;

    @Out(value = "department", required = false)
    private Department department;

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public boolean isCreateNew() {
        return createNew;
    }

    @Begin(nested = true)
    public void init() {
        departmentList = departmentService.findAllDepartments();
    }

    public List<Department> getDepartmentList() {
        return departmentList;
    }

    public void prepareEditDepartment(Department department) {
        this.department = department;
    }

    public void editDepartment() {
        System.out.println("Edit Department Name : " + department.getName());
    }
}


@范围(对话) @名称(“管理部门行动”) 公共类管理部门操作{ 公开名单部门名单; @在(“#{DepartmentService}”)中 私人创意部门服务部门服务; @输出(value=“department”,必选=false) 私人部门,; 公共部门{ 退货部; } 公共服务部(部门){ 这个部门=部门; } 公共布尔值isCreateNew(){ 返回新的; } @开始(嵌套=真) 公共void init(){ departmentList=departmentService.findAllDepartments(); } 公共列表getDepartmentList(){ 返回部门列表; } 公共事业部(部门){ 这个部门=部门; } 公共服务部(){ System.out.println(“编辑部门名称:+Department.getName()); } }
尝试使用属性render=“@all”。请使用firebug验证表单的呈现id是否仅为“entryForm”,或者是否添加了一些JSF前缀。这可能是render=“entryForm”不工作的原因

您应该传递要使用ajax呈现的控件的完整id。一个基本的例子:


我想渲染整个
h:form
,比如
:form2
<代码>
必须在
数据表中。