我的xhtml代码:
<h:commandLink action="#{detailController.updateProject}" class="positive" >
<h:graphicImage library="img" name="tick.png" alt=""/>
<h:outputText value="Save" />
</h:commandLink>
Run Code Online (Sandbox Code Playgroud)
不从JSF框架调用此操作(updateProject())!即使我在managedBean中删除它也没有抛出异常.
有没有人有这样的问题?我甚至无法解释--.-我的意思是这个行动方式就在那里!
ADD:是啊它是啊:表格标签!但是我在这个视图中有两种形式!可能那是问题吗?
ADD2:我还应该提一下,如果按下按钮,它会把我扔回上一个视图!所以我的操作方法被忽略了,而是打开了另一个视图?!?!
为了提供更多信息,我的页面构建如下:
panelGroup name=show rendered=!controller.edit
form
buttons
outputtext
/form
/panelGroup
panelGroup name=edit rendered=controller.edit
form
buttons
inputText
/form
/panelGroup
Run Code Online (Sandbox Code Playgroud)
所以我有两个,在一个文件中编辑和显示一个实体!但只有底部形式的按钮才显示出奇怪的行为(见上文).
回答BalusC:1.我使用两种形式(它们没有嵌套!)2.在底部形式我已经放置了啊:消息我要尝试将我的控制器放入viewScop进行检查3和4我不知道如何检查5.谢谢你..
这可能有很多可能的原因.@romaintaz只提到了最明显的一个(最常见的初学者的错误):UICommand组件必须放在UIForm组件内.
但是有更多原因:
您有多个嵌套表单.这在HTML中是非法的.行为取决于所使用的webbrowser,但通常按钮不会执行任何操作.您可能无法嵌套表单,但可以并行使用它们.
发生了验证或转换错误,但未被a捕获h:message.通常这会记录到stdout,但您也可以使用它h:messages来获取所有内容.
该UICommand组件被放置在UIData组件(例如h:dataTable)内,该组件value在后续请求期间未以正确的方式保留.如果JSF找不到关联的数据行,则不会调用该操作.将bean放在view范围内应该会有很大帮助.
组件或者其父母中的一个具有rendered或disabled其中评价属性false中应用请求值阶段.那时JSF不会调用该动作.将bean放在view范围内应该会有很大帮助.
一些PhaseListener,EventListener,Filter或Servlet在请求-响应链已经改变JSF生命周期跳过调用动作阶段的或改变的所述请求参数,使得JSF不能调用动作.
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |