Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每次单击a4j:commandButton时是否应该执行JSP Scriplet元素?_Jsp_Jsf - Fatal编程技术网

每次单击a4j:commandButton时是否应该执行JSP Scriplet元素?

每次单击a4j:commandButton时是否应该执行JSP Scriplet元素?,jsp,jsf,Jsp,Jsf,我有一个jsp页面,页面顶部有一个scriplet元素。在f:view和h:form标记之后的正文中,我有一个4J:commandButton,在其中我提供了操作。现在,每当scriplet元素被执行时,我按下a4j:commandButton,这是我对服务器的ajax调用。这是正常的行为还是我犯了错误 JSP脚本是由于在JSF视图构建期间(因此,在回发的恢复视图阶段)执行的遗留JSP视图技术的性质造成的。所以是的,这绝对是预期的行为 听起来好像您只想在初始GET请求上执行一些Java代码,而不

我有一个jsp页面,页面顶部有一个scriplet元素。在f:view和h:form标记之后的正文中,我有一个4J:commandButton,在其中我提供了操作。现在,每当scriplet元素被执行时,我按下a4j:commandButton,这是我对服务器的ajax调用。这是正常的行为还是我犯了错误

JSP脚本是由于在JSF视图构建期间(因此,在回发的恢复视图阶段)执行的遗留JSP视图技术的性质造成的。所以是的,这绝对是预期的行为

听起来好像您只想在初始GET请求上执行一些Java代码,而不想在后续回发上执行。在这种情况下,如果返回
false
,请检查scriptlet

FacesContext context = FacesContext.getCurrentInstance();

if (!context.getRenderKit().getResponseStateManager().isPostback(context)) {
    // Not a postback. Do your job here.
}
注意,在JSF2.x中有一个较短的方法是通过
FacesContext#isPostback()
,但是由于您使用的是遗留JSP,我假设您仍然使用遗留JSF1.x

另见:

与具体问题无关,自十年前的JSP 2.0以来,不鼓励使用Scriptlet。建议在普通Java类中执行该作业。例如,在支持bean的(post)构造函数中。您可以使用

JSP脚本是由于在JSF视图构建期间(因此,在回发的恢复视图阶段)执行的遗留JSP视图技术的性质造成的。所以是的,这绝对是预期的行为

听起来好像您只想在初始GET请求上执行一些Java代码,而不想在后续回发上执行。在这种情况下,如果返回
false
,请检查scriptlet

FacesContext context = FacesContext.getCurrentInstance();

if (!context.getRenderKit().getResponseStateManager().isPostback(context)) {
    // Not a postback. Do your job here.
}
注意,在JSF2.x中有一个较短的方法是通过
FacesContext#isPostback()
,但是由于您使用的是遗留JSP,我假设您仍然使用遗留JSF1.x

另见:

与具体问题无关,自十年前的JSP 2.0以来,不鼓励使用Scriptlet。建议在普通Java类中执行该作业。例如,在支持bean的(post)构造函数中。您可以使用