无法从浏览器加载WEB-INF

时间:2015-09-28 23:14:41

标签: jsf-2 primefaces

我开始使用primefaces和spring集成测试我的应用程序,但我停在p:commandButton组件上。当我点击它时,我想要显示p:growl popup组件,例如here,但不幸的是,页面会重定向到位置/WEB-INF/WEB-INF/intro.xhtml中查看(但视图位于/WEB-INF/intro.xhtml),错误为'找不到资源'。可能有人知道这个问题吗?我从GIT下载了一些示例project,然后遇到了同样的问题。我在

中更改了一些视图代码
  

/springmvcfacelets/src/main/webapp/templates/maintemplate.xhtml

并粘贴来自primefaces的代码

<h:form>
<p:growl id="growl" life="2000" />

<p:commandButton value="Ajax Submit" id="ajax" update="growl" actionListener="#{buttonView.buttonAction}" styleClass="ui-priority-primary" />

<p:commandButton value="Non-Ajax Submit" id="nonAjax" actionListener="#{buttonView.buttonAction}" ajax="false" />

<p:commandButton value="With Icon" id="withIcon" actionListener="#{buttonView.buttonAction}" update="growl" icon="ui-icon-disk" />

<p:commandButton actionListener="#{buttonView.buttonAction}" id="iconOnly" update="growl" icon="ui-icon-disk" title="Icon Only" />

<p:commandButton value="Disabled" id="disabled" disabled="true" />

到视野中的身体。 Bean也被添加并注册。 查看代码:

<?xml version="1.0" encoding="UTF-8"?>
<!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:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

<h:head>
	<title><ui:insert name="title">Default title</ui:insert></title>
</h:head>

<h:body>
	<h:form>
		<p:panel id="panel" header="New User">
			<h:form>
				<p:growl id="growl" life="2000" />

				<p:commandButton value="Ajax Submit" id="ajax" update="growl"
					actionListener="#{buttonView.buttonAction}"
					styleClass="ui-priority-primary" />

				<p:commandButton value="Non-Ajax Submit" id="nonAjax"
					actionListener="#{buttonView.buttonAction}" ajax="false" />

				<p:commandButton value="With Icon" id="withIcon"
					actionListener="#{buttonView.buttonAction}" update="growl"
					icon="ui-icon-disk" />

				<p:commandButton actionListener="#{buttonView.buttonAction}"
					id="iconOnly" update="growl" icon="ui-icon-disk" title="Icon Only" />

				<p:commandButton value="Disabled" id="disabled" disabled="true" />
			</h:form>
		</p:panel>
	</h:form>
</h:body>
</html>

2 个答案:

答案 0 :(得分:0)

这与primefaces和commandbutton组件无关。 您无法使用浏览器访问位于WEB-INF目录中的文件。这将是安全漏洞。 Web-Inf适合使用<ui:include>加载集成模板(例如)或存储配置(faces-config.xmlweb.xmlapp-context.xml ...)。

将您的文件移至除web-inf之外的任何其他webapp目录,并更改提交结果(页面转移,无论是来自表单操作还是来自bean),并告诉我们结果。

答案 1 :(得分:0)

问题出在web.xml(缺少JSF的相应路径)文件和视图代码中。