首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PrimeFaces按钮导航操作

PrimeFaces按钮导航操作
EN

Stack Overflow用户
提问于 2012-12-17 18:52:44
回答 5查看 13.2K关注 0票数 2

我在通过按钮浏览页面时遇到了问题。

我现在的xhtml代码片段是这样的:

代码语言:javascript
复制
<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>

在这里,当我点击New Project时,它没有导航到相关页面。

我的beanfile文件:

代码语言:javascript
复制
  @ManagedBean
@RequestScoped
public class CreateProject {
    /**
     * Creates a new instance of CreateProject
     */
    public String create() {
        return "newproject.xhtml";
    }
}

单击按钮时如何导航用户?

编辑:edit is my faces-config

代码语言:javascript
复制
    <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>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-12-17 20:23:17

这段代码:

代码语言:javascript
复制
type="button"

使命令按钮成为一个简单的javascript触发器。如果你想在服务器上做任何事情,你必须移除按钮“type=”。此外,在action标签上定义的方法必须返回与所需视图相对应的字符串,并且不需要使用xml来定义导航。祝您今天愉快!

票数 7
EN

Stack Overflow用户

发布于 2012-12-17 19:37:11

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

代码语言:javascript
复制
<p:commandButton ajax="false" value="New Project" icon="ui-icon-document" action="#{createProject.create()}" />

还要确保您的按钮位于表单元素内。在您的整个<p:layoutUnit>标记周围放置一个<h:form> ... </h:form>

票数 3
EN

Stack Overflow用户

发布于 2012-12-17 18:57:28

添加到faces-config.xml中

代码语言:javascript
复制
<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}"/>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13912727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档