无法从浏览器加载 WEB-INF
Cannot load WEB-INF from browser
我开始使用 primefaces 和 spring 集成测试我的应用程序,但我停止在 p:commandButton
组件上。当我点击它时,我想显示 p:growl 弹出组件,如 GIT 中的 here, but unfortunately page is redirect to view in location /WEB-INF/WEB-INF/intro.xhtml
(but view is located in /WEB-INF/intro.xhtml
) with error of 'resource not found'. May be some one know the problem? I download some example 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" />
到body可见。还添加并注册了 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>
这与 primefaces 和命令按钮组件无关。
您根本无法使用浏览器访问位于 WEB-INF 目录中的文件。这将是安全漏洞。 Web-Inf 适用于使用 <ui:include>
(例如)加载集成模板或存储您的配置(faces-config.xml
、web.xml
、app-context.xml
...)。
将您的文件移动到除 web-inf 之外的任何其他 webapp 目录并更改提交结果(页面所在的位置,来自表单操作或来自 bean)并让我们知道结果。
问题出在web.xml(缺少适合 JSF 的路径)文件和视图代码中。
我开始使用 primefaces 和 spring 集成测试我的应用程序,但我停止在 p:commandButton
组件上。当我点击它时,我想显示 p:growl 弹出组件,如 GIT 中的 here, but unfortunately page is redirect to view in location /WEB-INF/WEB-INF/intro.xhtml
(but view is located in /WEB-INF/intro.xhtml
) with error of 'resource not found'. May be some one know the problem? I download some example 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" />
到body可见。还添加并注册了 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>
这与 primefaces 和命令按钮组件无关。
您根本无法使用浏览器访问位于 WEB-INF 目录中的文件。这将是安全漏洞。 Web-Inf 适用于使用 <ui:include>
(例如)加载集成模板或存储您的配置(faces-config.xml
、web.xml
、app-context.xml
...)。
将您的文件移动到除 web-inf 之外的任何其他 webapp 目录并更改提交结果(页面所在的位置,来自表单操作或来自 bean)并让我们知道结果。
问题出在web.xml(缺少适合 JSF 的路径)文件和视图代码中。