Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Ajax PrimeFaces按钮导航操作_Ajax_Jsf_Primefaces - Fatal编程技术网

Ajax PrimeFaces按钮导航操作

Ajax PrimeFaces按钮导航操作,ajax,jsf,primefaces,Ajax,Jsf,Primefaces,我在通过按钮导航页面时遇到问题 我当前的xhtml代码片段如下所示: <p:layoutUnit position="west" size="200" header="Menü" resizable="true" closable="true" collapsible="true"> <p:column> <p:commandButton type="button" value="New Project" ic

我在通过按钮导航页面时遇到问题

我当前的xhtml代码片段如下所示:

<p:layoutUnit position="west" size="200" header="Menü" resizable="true" closable="true" collapsible="true">
            <p:column>
                <p:commandButton type="button" value="New Project" icon="ui-icon-document" action="#{createProject.create()}"/>


                <p:commandButton type="button" value="All Projects" icon="ui-icon-folder-open"/>

                <p:commandButton type="button" value="Edit" icon="ui-icon-pencil"/>

                <p:commandButton type="button" value="Delete" icon="ui-icon-closethick"/>

                <p:separator />
                <p:commandButton type="button" title="Yazdır" icon="ui-icon-print"></p:commandButton>
            </p:column>

        </p:layoutUnit>
单击按钮时如何导航用户

编辑:这是我的脸配置

    <faces-config
    version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
    <managed-bean>
        <managed-bean-name>loginBean</managed-bean-name>
        <managed-bean-class>com.ibb.source.LoginBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>myProjects</managed-bean-name>
        <managed-bean-class>com.ibb.source.MyProjects</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>myCalendar</managed-bean-name>
        <managed-bean-class>com.ibb.source.MyCalendar</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <navigation-rule>
        <from-view-id>/panel.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>create</from-outcome>
            <to-view-id>newproject.xhtml</to-view-id>
        </navigation-case>
  </navigation-rule>
    <managed-bean>
        <managed-bean-name>createProject</managed-bean-name>
        <managed-bean-class>com.ibb.source.CreateProject</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
      </managed-bean>
        <managed-bean>
            <managed-bean-name>inPlaceEditor</managed-bean-name>
            <managed-bean-class>com.ibb.source.InPlaceEditor</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
        <managed-bean>
            <managed-bean-name>projectsList</managed-bean-name>
            <managed-bean-class>com.ibb.source.ProjectsList</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
        <navigation-rule>
           <from-view-id>panel.xhtml</from-view-id>
           <navigation-case>
               <from-outcome>newproject</from-outcome>
               <to-view-id>/newproject.xhtml</to-view-id>
           </navigation-case>
        </navigation-rule>
        <managed-bean>
            <managed-bean-name>allProjects</managed-bean-name>
            <managed-bean-class>com.ibb.source.AllProjects</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
        <managed-bean>
            <managed-bean-name>allProjectsList</managed-bean-name>
            <managed-bean-class>com.ibb.source.AllProjectsList</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
    </faces-config>

罗根宾
com.ibb.source.LoginBean
要求
我的项目
com.ibb.source.MyProjects
要求
我的日历
com.ibb.source.MyCalendar
要求
/panel.xhtml
创造
newproject.xhtml
创建项目
com.ibb.source.CreateProject
要求
在位编辑
com.ibb.source.InPlaceEditor
要求
项目列表
com.ibb.source.ProjectsList
要求
panel.xhtml
新项目
/newproject.xhtml
所有项目
com.ibb.source.AllProjects
要求
所有项目列表
com.ibb.source.AllProjectsList
要求

添加到faces-config.xml

<navigation-rule>
       <from-view-id>page1.xhtml</from-view-id>
       <navigation-case>
           <from-outcome>page2</from-outcome>
           <to-view-id>/newproject.xhtml</to-view-id>
       </navigation-case>
    </navigation-rule>



@ManagedBean
@RequestScoped
public class CreateProject {
    /**
     * Creates a new instance of CreateProject
     */
    public String create() {
        return "page2";
    }
}

 <p:commandButton type="button" value="New Project" icon="ui-icon-document" action="#{createProject.create}"/>

page1.xhtml
第2页
/newproject.xhtml
@ManagedBean
@请求范围
公共类创建项目{
/**
*创建CreateProject的新实例
*/
公共字符串create(){
返回“第2页”;
}
}

要在按下命令按钮时执行操作,您需要更改:

<p:commandButton type="button" value="New Project" icon="ui-icon-document" action="#{createProject.create()}"/>

致:


没有“
()


该方法返回的字符串可以是页面(如您的示例)或导航规则(faces navigation)

默认情况下,PrimeFaces的
commandButton
组件使用ajax发送命令,因此导航无法工作。将
ajax
属性设置为
false

<p:commandButton ajax="false" value="New Project" icon="ui-icon-document" action="#{createProject.create()}" />

还要确保按钮位于表单元素内。放一个
围绕整个
标签。

此代码:

type="button"
使commandbutton成为一个简单的javascript触发器。 如果要在服务器上执行任何操作,必须删除type=“button”。 此外,在action标记上定义的方法必须返回与所需视图对应的字符串,并且不需要使用xml来定义导航。
祝你今天愉快

我也有同样的问题。我用
按钮
而不是
命令按钮
解决了这个问题。请注意,使用的是
结果
,而不是
操作

 <p:button ajax="false" value="New Project" icon="ui-icon-document" outcome="#{createProject.create}" />


您是否尝试在faces Config中使用导航规则检查是否调用了创建方法?使用一些打印到create()。@Ali,你找到你的解决方案了吗?create()方法是否正在调用?它正在调用。但我无法确定如何使其工作。您尝试返回的页面是否与此页面位于同一文件夹中?请删除[type=“button”]部分,然后重试。CommandButton已指示type=“button”。当我移除它时,它什么也不做。它给出:CommandButton:“j_idt17”必须在表单元素中
p:CommandButton
应该始终在表单中。把你的按钮放在
h:form
标签里,这应该会起作用。这可能是因为嵌套的表单@AliYucelAkgul@Ali“不起作用”是什么意思?页面是否重新加载但仍在同一页面中?还是什么都没发生?或者你得到并出错了?@Ali你试过使用标准commandButton(
)吗?我也试过。而且一直都是这样。页面既不会重新加载,也不会保留。就像你在没有代码的情况下点击按钮来触发它。我也尝试过在脸上使用导航规则-config@Ali这有点奇怪,我不明白你的说法。当您单击一个按钮(ajax设置为false)时,应该会出现以下情况:a。你的页面应该重新加载到相同的URL;B你的页面应该加载到一个新的URL;C你应该得到一个错误;D绝对什么也没发生!(最后是启用ajax时的情况)。
type="button"
 <p:button ajax="false" value="New Project" icon="ui-icon-document" outcome="#{createProject.create}" />