- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
f:param
与 h:link
配合使用效果很好,但不是 p:commandLink
或 h:commandLink
.
例如,我有两页 test_first.xhtml
和 test_second.xhtml
, 和一个支持 java bean TestBean.java
.
我开始运行 test_first.xhtml
.
如果我点击 link1
,这是一个 h:link
,页面将重定向到 test_second.xhtml
.在 f:param
的帮助下,浏览器地址栏会显示.../test_second.xhtml?id=1
.在该页面上,testBean.userId
被打印出来。
如果我点击 link2
或 link3
,页面重定向到 test_second.xhtml
.但是地址栏只显示.../test_second.xhtml
,没有 ?id=#
!和 testBean.userId
不会打印在该页面上。
我该如何制作 commandLink
与 f:param
一起工作?有时我希望链接不要重定向到另一个页面,而是根据数据调用 bean 的一些方法。
test_first.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head/>
<h:body>
<h:form>
<h:link value="link1" outcome="test_second" >
<f:param name="id" value="1"/>
</h:link>
<br/><br/>
<h:commandLink value="link2" action="test_second?faces-redirect=true" >
<f:param name="id" value="2" />
</h:commandLink>
<br/><br/>
<p:commandLink value="link3" action="test_second?faces-redirect=true">
<f:param name="id" value="3" />
</p:commandLink>
<br/><br/>
</h:form>
</h:body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<f:metadata>
<f:viewParam name="id" value="#{testBean.userId}" />
</f:metadata>
<h:head/>
<h:body>
<h:form>
This is the second page.
<h:outputText value="Selected id is #{testBean.userId}" />
<h:commandButton value="Print page id" action="#{testBean.print()}" />
</h:form>
</h:body>
</html>
@ManagedBean
@SessionScoped
public class TestBean implements Serializable{
private Integer userId;
public void print() {
System.out.println(userId);
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
}
最佳答案
您误解了这两个标签的含义,即 <h:link>
和 <h:commandLink>
所以,你也误解了<f:param>
的意思连接到两者中的任何一个。无论如何,在提出问题以获取更多见解之前,始终阅读文档是值得的。
<h:link>
renders an HTML "a" anchor element. The value of the component is rendered as the anchor text and the outcome of the component is used to determine the target URL rendered in the "href" attribute. Any childUIParameter
components are appended to the String to be output as the value of the "href" attribute as query parameters before rendering...
<h:commandLink>
render an HTML "a" anchor element that acts like a form submit button* when clicked ... if the disabled attribute is not present, or its value is false. It renders "#" as the value of the "href" attribute, renders the current value of the component as the link text if it is specified and *renders JavaScript that is functionally equivalent to the following as the value of the "onclick" attribute:document.forms['CLIENT_ID']['hiddenFieldName'].value='CLIENT_ID';
document.forms['CLIENT_ID']['PARAM1_NAME'].value='PARAM1_VALUE';
document.forms['CLIENT_ID']['PARAM2_NAME'].value='PARAM2_VALUE'; return false;
document.forms['CLIENT_ID'].submit()"where
hiddenFieldName
is as described above, CLIENT_ID is the clientId of the UICommand component, PARAM_NAME and PARAM_VALUE are the names and values, respectively, of any nested UIParameter children.
<h:link>
内标签嵌套
<f:param>
最终将作为生成 URL 的查询参数,而在
<h:commandLink>
内标签嵌套
<f:param>
最终将作为具有给定值的请求参数。
<h:commandLink>
发送 POST 请求并附加所有嵌套的
<f:param>
标签作为请求参数。但这取决于您如何处理它们,如
导航完全在您手中 .
action
属性,
哪个用例可疑 ,就像在
action="second-page"
,以何种方式
你根本没有传递任何查询参数 .将要做的是发布到同一个 View 并转发到第二个 View 而不采取任何操作。相当愚蠢的举动。
action="#{bean.action}"
.在这种情况下
您必须在提供的操作方法中处理导航 ,即返回
null
/
void
从用于回发的方法中,或将导航案例结果作为字符串返回以转发到指定的 View 。至于
您通过 <f:param>
传递的请求参数它们将通过标准 JSF 方式提供 喜欢
@ManagedProperty("#{param.name}")
在请求范围的 bean 上,或通过调用
ExternalContext#getRequestParameterMap()
例如,在任何作用域的 bean 中,在 action 方法中,如
String param = externalContext.getRequestParameterMap().get("name")
.所以现在你有了你的参数 in action 方法,你可以随意使用你喜欢的方式,只需遵守一组存在于 URL 的规则。
faces-redirect=true
中幸存下来。这基本上会触发另一个请求。另一个选项是指定
includeviewparams=true
传递当前 View 的参数,如果需要,如另一个答案中所述。
关于jsf - f :param does not work with p:commandLink or h:commandLink on query string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18347995/
今天我有一个非常简单的任务需要帮助。首先让我解释一下我的环境。我们正在使用 Java/Hibernate/SEAM/Facelets/JSF/RichFaces 和 A4J 设置..我对此了解不多。
f:param与 h:link 配合使用效果很好,但不是 p:commandLink或 h:commandLink . 例如,我有两页 test_first.xhtml和 test_second.xh
我最近开始做一些JSF工作-在此之前,我一直使用PHP或Python进行Web开发。 当我发现使用h:commandLink标记时,JSF使用HTTP POST进行导航时,我感到有些惊讶。 我一直在使
环境:Tomcat 6、jsf 2.0、prime faces 2.2.1、chrome 浏览器 我想单击左侧伸展树(Splay Tree)中的“查看详细信息”链接并显示产品的详细信息。但下面的代码不
我正在尝试在我的应用程序 (Seam/RichFaces) 中显示购物车,并包含“从购物车中删除”旁边的每个项目以从购物车中删除该项目。当我单击该链接时,它应该重新呈现购物车内容以显示该项目已被删除。
当我创建一个包含分面的复合组件并在该分面内放置一个命令链接时,我收到一条错误消息:This link is disabled as it is not nested within a JSF form
我对 有疑问.我想制作悬停效果,但无法将图像加载到 通过 CSS。 CSS: .accountEditBtn { background-image: url('#{request.c
我是新手,但我的操作没有被触发。在 a4j:commandLink id="linklogout"中,我添加了一个不起作用的新操作 menubean.resetMenuActionVariables
我的树表中有很多命令链接,我动态构建它们,如果我想在单击一个命令链接时更改它的颜色,所有命令链接都会更改它们的颜色,我不知道如何做更改此指定链接的颜色,因为我不知道她的号码或 ID,如果有人知道答案,
我有以下 XHTML: TODO supply a title
我有一个包含两个 JSP 的 JSF 应用程序:login.jsp 和 main.jsp。 我有以下 faces-config.xml: package.programs.scorecard.b
写作能力不足请谅解。 我正在测试制作自定义凭证提供程序。我想创建一个 CommandLink 来对提交按钮做同样的事情。我想通过 CommandLink 与“提交”按钮分开登录。目前,只有自定义凭证提
我正在开发一个 JSF 应用程序并想要一个简单的功能 - 单击命令按钮并显示一个命令链接。我做了一个测试。代码: function testfunc() { docu
我在我的应用程序中使用了 icefaces commandLink,我想在水印中添加一个图标。我在 commandLink 中添加了一个属性 styleCss="disconnect",但在渲染过程中
这是我的代码。我在面板网格内有两个图像,这两个图像放置在动画 Javascript 渐变之上。当左侧图像与右侧的注销图标平行放置时(如图所示),注销功能不起作用。当我删除左侧图像时,注销功能正在运行。
我想知道是否可以将 h:commandLink 嵌套到 h:outputFormat 消息中,例如: 消息.属性 disclaimerLink=Click {0] for Disclaimer 现在我
谁能告诉我如何在 WPF 窗口中添加 CommandLink 控件? 这就是我所说的 CommandLink 的意思:http://msdn.microsoft.com/en-us/library/a
如何使用 commandLink 显示图标: outputText (Add) 不可见。 commandLink 支持图标的正确方法是什么?谢谢。 最佳答案
我在延迟加载 Primefaces Datascroller 时遇到问题成分。 我有一个 jsf 页面,它应该在页面加载时显示 10 个事件。如果用户想要查看更多,他/她可以单击更多按钮加载并显示 1
我想使用我的 faces-config.xml (JSF 2.0) 的导航规则功能,但我遇到了一些问题。我有三个文件(index.xhtml、index2.html、index3.xhtml),它们看
我是一名优秀的程序员,十分优秀!