昨天我发布了一个问题,关于必须按下两次按钮才能使其正常工作。我得到了很好的帮助,这是stackoverflow的标志,但是问题仍然存在。我将代码缩减到最低限度,问题仍然存在。我仔细阅读了BalusC的建议,希望能在表单内找到表单。我当然看不到任何东西,所以我将发布我的代码,以希望更多的眼睛看到一些东西。
我有一个模板,可以从“欢迎”(登录部分)中调用。这将转到具有命令按钮的userInfo。这是命令按钮,我神秘地不得不按两次。在第二次按下命令按钮将带我到userPhoto。一切都缩小到最小,以便我可以发布。
master.xthml:
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Master template</title>
</h:head>
<h:body>
<p:layout fullPage="true" >
<p:layoutUnit position="north" size="254">
Top
</p:layoutUnit>
<p:layoutUnit position="east" size="50" resizable="true">
Hello
</p:layoutUnit>
<p:layoutUnit position="south" size="30">
south
</p:layoutUnit>
<p:layoutUnit position="center">
<ui:insert name="AreaOne">Default text</ui:insert>
</p:layoutUnit>
</p:layout>
</h:body>
</html>
welcome1.xhtml:
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="master.xhtml">
<ui:define name="AreaOne">
<h:form id="form1">
<p:commandButton type="submit" value="Login" action="userInfo" />
</h:form>
<p:messages />
</ui:define>
</ui:composition>
</html>
最后但并非最不重要的一点是userInfo.xhtml,其中需要按下两次按钮:
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="master.xhtml">
<ui:define name="AreaOne">
<h:form id="formP">
<p:commandButton type="submit" value="photos" action="userPhoto" />
</h:form>
<p:messages />
</ui:define>
</ui:composition>
</html>
我看不到任何嵌套在任何其他表单中的表单,但是某些地方是错误的,我无法弄清楚是什么。也许BalusC与ajax有关,这是正确的,但我也没有看到。
感谢您的所有帮助。宜兰
我在userPhoto页面上添加了一个按钮,该按钮可返回到userInfo页面。“登录”按钮是唯一在第一次按下时起作用的按钮。当我使用命令按钮在userInfo和userPhoto之间来回切换时,总是需要2次按下。我将展示userPhoto的中心
<ui:composition template="master.xhtml">
<ui:define name="AreaOne">
<h:form id="form3">
<p:commandButton type="submit" value="home page" action="userInfo" />
</h:form>
<p:messages />
</ui:define>
</ui:composition>
您有一个非常具体的问题。您正在通过ajax进行全面导航,而不是通过常规同步请求进行导航,整个视图将替换为新视图。新视图中的表单不再具有视图状态,该状态确实与JSF问题790有关。它也不可能引用表格中update
的<p:commandButton>
作为形式在同一视图不存在。
毕竟,建议不要通过ajax进行完全导航。它使您的页面不可书签,也不能被searchbotindexable。我建议替换所有形式的
<p:commandButton ... action="otherViewId" />
通过
<p:button ... outcome="otherViewId" />
这将通过正常的同步请求进行导航,并将创建新的视图,其中所有表单都将具有其视图状态。请注意,<p:button>
不需要<h:form>
,您可以根据需要将其忽略。
无关 的具体问题,我也建议把master.xhtml
中/WEB- INF
文件夹,以便在最终用户不能输入/猜测它的URL在浏览器地址栏中提出要求。
问题内容: 在我的React组件中,我有一个按钮,当单击该按钮时,它会通过AJAX发送一些数据。我只需要第一次发生,即在首次使用后禁用该按钮。 我如何尝试做到这一点: 我认为发生的事情是状态变量没有立即更新,这是React文档所说的预期。 我如何强制按钮被禁用或在单击按钮时立即消失? 问题答案: 您可以做的是单击该按钮后将其禁用,然后将其保留在页面中(不可单击的元素)。 为此,您必须向按钮元素添加
在React组件中,我有一个按钮,用于在单击时通过AJAX发送一些数据。我只需要第一次使用,即在第一次使用后禁用按钮。 我是如何做到这一点的: 我认为发生的是状态变量没有立即更新,React文档说这是预期的。 我如何强制按钮在被点击的瞬间被禁用或完全消失?
滑动一个视图时候,可以连续两次滑动,模仿网易彩票查看开奖结果的效果。 [Code4App.com]
问题内容: 出于某种原因,每当我在循环使用时按一下该键,此后的代码将立即执行两次。如果不在循环中,它将执行一次!为什么是这样? 这是一个测试它的代码片段: 问题答案: 发生这种情况的原因是,当您按Enter键时,System.in.read()将注册两个字符。应该将其用作扫描仪的更复杂版本,而不是使用扫描仪来执行Scanner.nextLine()或Scanner.nextInt()来返回字符串或
不过,我可以在01:00的视频中复制问题。这意味着当我安装带有身份验证的Laravel时,如果我在登录表单中单击提交按钮两次,Firefox将发送2个请求。 为什么在多次单击按钮时,Firefox有时发送多个请求,而有时只发送一个? 我有一个用户表 如果我在按钮上单击两次(或二十次)提交表单,那么数据库中只有一个新行。 为什么会这样?我希望,如果我多次单击submit按钮,那么表单将发送多个请求,
我正在制作一个android应用程序,它需要检测设备电源按钮按下两次/三次的事件 下面是我尝试过的代码,它不工作... 我的代码: 清单文件: