首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么素数面菜单项目需要一个表格?

为什么素数面菜单项目需要一个表格?
EN

Stack Overflow用户
提问于 2015-02-05 13:13:17
回答 1查看 1.4K关注 0票数 3

为什么我的菜单在素数面需要一个表格周围是?这是最好的方法吗?

所需表格:

代码语言:javascript
运行
复制
<h:form id="menuForm">
    <p:menu>
        <p:menuitem value="Simple Flow" action="simple-flow" ajax="false"/>
    </p:menu>
</h:form>

不需要表格:

代码语言:javascript
运行
复制
<p:menu>
    <p:menuitem value="Simple Flow" outcome="/simple-flow/simple-flow"/>
</p:menu>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-05 14:04:09

带有结果的菜单项生成带有href的普通html a标记(在应用程序的域中)。单击时,会产生对指定页的get请求。url属性做同样的操作,但是可以用来引用外部页面,通过调查PrimeFaces菜单展示的源可以看到--这个功能不需要表单,因为不需要将数据发送到服务器。

action属性也生成一个a标记,但是它总是需要向服务器发送数据,并且能够在服务器上调用一个方法。(这就是如何在JSF中定义动作的一般功能)。本例中的菜单项没有功能hfref (它是"#"),但是通过javascript (请参阅展示的源代码)单击它,或者执行ajax调用(如果指定的话)或完全提交表单。因为在这两种情况下,表单数据都需要发送到服务器,所以需要表单(这就是html的工作方式)。

是的,您可以通过指定process="@this“来排除发送其他数据,或者您可能没有数据,但是服务器仍然需要知道发生了什么,并且行为必须与规范一致。您的示例不调用服务器上的方法(不存在#{.}),这是一个优化,您现在可以指定JSF 2中引入的直接页面。在jsf 1.2中,需要导航规则。(见http://www.mkyong.com/jsf2/implicit-navigation-in-jsf-2-0/)

因此,您在ui中看到的行为可能没有什么不同,但在幕后却是如此。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28344902

复制
相关文章

相似问题

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