相关疑难解决方法(0)

commandButton/commandLink/ajax动作/侦听器方法未调用或输入值未设置/更新

有时,使用时<h:commandLink>,<h:commandButton>或者<f:ajax>,在action,actionListenerlistener与标签相关的方法根本不被调用.或者,bean属性不会使用提交的UIInput值进行更新.

有什么可能的原因和解决方案?

jsf action commandlink jsf-2 commandbutton

332
推荐指数
5
解决办法
20万
查看次数

了解PrimeFaces进程/更新和JSF f:ajax执行/呈现属性

究竟是什么process,并update在PrimeFaces p:commandXxx组件和executerenderf:ajax标签?

哪个在验证时有效?什么是update属性做,而不是更新的值从后端组件?不要process属性绑定值模型?究竟是什么@this,@parent,@all@form在这两个属性?

下面的例子工作正常,但我对基本概念有点困惑.

<p:commandButton process="@parent"
                 update="@form"
                 action="#{bean.submit}" 
                 value="Submit" />
Run Code Online (Sandbox Code Playgroud)

jsf process updates primefaces

181
推荐指数
4
解决办法
22万
查看次数

我应该何时使用h:outputLink而不是h:commandLink?

我什么时候应该使用<h:outputLink>而不是<h:commandLink>

我知道a commandLink生成一个HTTP帖子; 我猜这outputLink将产生HTTP获取.也就是说,我读过的大多数JSF教程材料都是commandLink(几乎?)使用的.

上下文:我正在实现一个小的演示项目,它显示了一个到用户页面的标题链接,就像Stack Overflow的......

需要更多的jquery

......我不确定commandLink(可能是?faces-redirect=true用于书签)还是outputLink正确的选择.

jsf jsf-2

128
推荐指数
1
解决办法
10万
查看次数

h:button和h:commandButton之间的区别

在JSF 2中,h:button和之间有什么区别h:commandButton

jsf button jsf-2

69
推荐指数
2
解决办法
11万
查看次数

方法必须有签名"String method()... [etc] ..."但是有签名"void method()"

我有一个数据表,每行有一个按钮:

<ice:dataTable ... var="item">
  <ice:column>
    <h:commandButton value="Download" action="#{mybean.downloadItem(item)}" />
  </ice:column>
</ice:dataTable>
Run Code Online (Sandbox Code Playgroud)

在支持bean中有这种方法:

public void downloadItem(Item item) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

一切正常(单击该方法时执行),但Eclipse验证失败并显示以下奇怪消息:

方法必须具有签名"String method(),String method(),String方法(String),String方法(String,String),String方法(String,String,String),String方法(String,String,String,String) ,String方法(String,String,String,String,String),String方法(String,String,String,String,String,String),String方法(String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String),String方法(String,String,String,String,String,String,String,String,String),String方法(String,String,String, String,String,String,String,String,String,String),String方法(String,String,String,String,String,String,String,String,String,String,String),String方法(String,String,String, String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String,String,String,String,String,String),String方法 tring,String,String,String,String,String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String,String, String,String,String,String,String,String),String方法(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String, String,String,String,String,String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String,String,String, String,String,String,String,String,String,String,String,String)"但是有签名"void method()"

我能做什么?

如果这是相关的,我在Tomcat 7上使用Eclipse Indigo SR1.

eclipse validation jsf el eclipse-wtp

64
推荐指数
1
解决办法
3万
查看次数

如何在JSF中导航?如何使URL反映当前页面(而不是前一页)

我正在学习JSF,当我意识到每当我们使用时<h:form>,JSF的标准行为总是向我显示浏览器中上一页的URL ,而不是当前页面的URL,我感到非常惊讶和困惑.

我知道这与JSF总是将表单发布到同一页面的方式有关,然后只是呈现控制器将其返回给浏览器的任何页面,而浏览器不知道页面位置已更改.

似乎JSF已经存在了足够长的时间,必须有一个干净,可靠的方法来处理这个问题.如果是这样,你介意分享吗?

我找到了各种解决方法,但遗憾的是,这似乎不是一个真正可靠的解决方案.

  • 只需接受该网址具有误导性.
  • 附加"?faces-redirect=true"每个 bean的操作的返回值然后
    • 弄清楚如何@RequestScoped用其他东西替换(Flash Scopes,CDI对话,@ SessionScoped,......).
    • 接受为每个用户操作进行两次HTTP往返.
  • 使用某种方法(例如第三方库或自定义代码)隐藏URL中的页面名称,始终对每个页面使用相同的通用URL.

如果它"?faces-redirect=true"是如此好,有没有办法配置整个应用程序以这种方式处理所有请求?

navigation url jsf redirect

51
推荐指数
1
解决办法
4万
查看次数

按PrimeFaces p:commandButton时事件的执行顺序

我试图执行一个JSF2 bean方法,并在完成单击PrimeFaces的方法后显示一个对话框<p:commandButton>.

<p:commandButton id="viewButton" value="View"
    actionlistener="#{userBean.setResultsForSelectedRow}" ajax="false"
    update=":selectedRowValues"
    oncomplete="PF('selectedRowValuesDlg').show()">
</p:commandButton>
Run Code Online (Sandbox Code Playgroud)
<p:dialog id="selectedRowValues" widgetVar="selectedRowValuesDlg" dynamic="true">
    <h:outputText value="#{userBean.selectedGroupName}" />
</p:dialog>
Run Code Online (Sandbox Code Playgroud)

当我单击命令按钮时,bean动作侦听器方法setResultsForSelectedRow正确执行,但在方法完成时它不显示对话框.如果我删除actionlistener,它会显示对话框.我不知道出了什么问题.

事件的执行顺序是什么?是否有可能执行actionlisteneroncomplete同步?

jsf action primefaces jsf-2 commandbutton

33
推荐指数
2
解决办法
10万
查看次数

在JSF表单提交上保留GET请求查询字符串参数

我有3页:

  • main.xhtml
  • agreement.xhtml
  • generated.xhtml

agreement.xhtml需要两个参数正确加载:serviceIdsite.所以,正常的网址看起来像这样:/app/agreement.xhtml?site=US&serviceId=AABBCC.

我有这个按钮 agreement.xhtml

<h:form>
   <h:commandButton value="Generate License File" action="#{agreement.generateMethod}" />   
</h:form>
Run Code Online (Sandbox Code Playgroud)

@RequestScoped#{agreement}有这样的方法:

public String generateMethod(){
    .......
    return "generated";
}
Run Code Online (Sandbox Code Playgroud)

我需要,在点击时,generateMethod()方法被执行,完成后,用户被重定向到generated.xhtml页面.发生了什么事是,在点击,网页浏览器发送的用户/app/agreement.xhtml,而且由于它不发送参数siteserviceId,它崩溃.

我尝试过generateMethod()返回a "generated?faces-redirect=true",但仍然没有.有任何想法吗?

navigation jsf jsf-2 http-request-parameters

17
推荐指数
2
解决办法
2万
查看次数

是否可以在actionListener之前调用setPropertyActionListener

我目前遇到了JSF执行顺序的问题.

看看我的示例代码:

<p:commandButton action="update.xhtml" ajax="false"
                        icon="ui-icon-pencil"
                        actionListener="#{marketingCodeBean.initForUpdate}">
    <f:setPropertyActionListener
        target="#{marketingCodeBean.marketingCode}" value="#{code}"></f:setPropertyActionListener>
</p:commandButton>
Run Code Online (Sandbox Code Playgroud)

我想使用setPropertyActionListener设置bean属性,并对actionListener = initForUpdate进行一些处理.但是JSF默认执行顺序是相反的,actionListener首先在setPropertyActionListener之前.这个问题有干净的解决方法吗?

我正在考虑使用actionListener并将bean参数传递给它,但我不确定这是否是最好的方法.

jsf jsf-2

15
推荐指数
1
解决办法
2万
查看次数

h:commandLink动作和f:ajax监听器的调用顺序

这是我的标记:

<h:commandLink value="#{partial}" action="#{hello.setCurrentPartial(partial)}">
    <f:ajax render="include" listener="#{hello.renderFragments}"/>
</h:commandLink>
Run Code Online (Sandbox Code Playgroud)

我试图在Mojarra-2.2.8(wildfly 8.2.0.Final内置)和MyFaces-2.2.7(按照此处的指导安装)中运行此页面.令人惊讶的是,当点击链接时,mojarra hello.renderFragments首先调用,然后hello.setCurrentPartialMyFaces采用相反的顺序,即hello.setCurrentPartial首先调用.

所以我的问题是在JSF Spec中是否有动作调用顺序和ajax监听器的定义.如果定义了订单,哪个实现是正确的?

ajax jsf myfaces jsf-2.2

12
推荐指数
1
解决办法
3176
查看次数