在RequestDispatcher#forward()打开的/ WEB-INF中的Facelets文件中使用h:form来执行托管bean的方法

时间:2015-01-20 00:47:38

标签: forms jsf servlets managed-bean commandbutton

我在Glassfish上使用Java EE作为企业应用程序。

我在WEB-INF中有一些xhtml文件,以防止直接访问URL,我可以使用servlet访问。当用户按下按钮时,我需要调用托管bean的方法。

我使用的xhtml代码是:

<h:form><p:commandButton action="#{managedBean.testFunction()}" value="Test function" type="submit" ajax="false" styleClass="block" /></h:form>

问题是h:form的输入似乎将我重定向到我的xhtml文件的实际路径,例如:

我的servlet映射到:

/ ServlerDispatcher / DispatcherServlet的

使用:

request.getRequestDispatcher("/WEB-INF/HiddenFiles/fileA.xhtml").forward(request, response);

在WEB-INF文件夹中显示xhtml文件,其中包含我上面提到的表单。提交表单,按下按钮会将我重定向到此URL:

/ServlerDispatcher/WEB-INF/HiddenFiles/fileA.xhtml`` 

由于它在WEB-INF文件夹中无法显示,因此无法直接访问URL。

正如我所说,当用户按下按钮时,我真正需要的是执行托管bean方法。我怎么能这样做?

感谢您的关注

0 个答案:

没有答案