我是tile和strut2的新手。 我无法理解当我在login.jsp页面中使用html标签然后它工作正常但同时如果我在login.jsp中的struts标签中编码然后它给出错误。为什么这发生我不能了解。下面给出了以下代码和错误..请帮助我
HTTP状态500 - 内部服务器错误
输入例外报告
messageInternal Server Error
description服务器遇到阻止它的内部错误 完成此请求。
例外
javax.servlet.ServletException:执行标记时出错:JSPException 包括路径&baseLayout.jsp'。
根本原因
org.apache.tiles.TilesException:包含路径的JSPException ' /baseLayout.jsp'
根本原因
org.apache.tiles.util.TilesIOException:包含路径的JSPException ' /baseLayout.jsp'
根本原因
org.apache.tiles.util.TilesIOException:包含路径的JSPException ' /login.jsp'
根本原因
找不到Struts调度程序。这通常是由 使用没有关联过滤器的Struts标签。 Struts标签只是 当请求通过其servlet过滤器时可用 初始化此标记所需的Struts调度程序。 - [未知 位置]
注意异常的完整堆栈跟踪及其根本原因是 可在GlassFish Server Open Source Edition 4.1日志中找到。
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Struts2Example15</display-name>
<context-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.apache.struts2.tiles.StrutsTilesListener
</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
struts.xml中
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
<result-types>
<result-type name="tiles" class="org.apache.struts2.view.tiles.TilesResult"/>
</result-types>
<action name="loginAction" class="package_entry.loginAction" method="execute">
<result name="getin">welcome.jsp</result>
<result name="user_login">user_login.jsp</result>
</action>
</package>
</struts>
的index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page language="java"%>
<%@taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<tiles:insertTemplate template="/baseLayout.jsp">
<tiles:putAttribute name="tiles" value="this is tes framework" type="string"/>
<tiles:putAttribute name="header" value="/header.jsp" />
<tiles:putAttribute name="menu" value="/menu.jsp" />
<tiles:putAttribute name="body" value="/body.jsp" />
<tiles:putAttribute name="footer" value="/footer.jsp" />
</tiles:insertTemplate>
引入了menu.jsp
<%@taglib uri="/struts-tags" prefix="s"%>
<a href="loging.jsp">Login</a><br>
<a href="registring.jsp">Register</a><br>
<a href="contacting.jsp">Contact</a><br>
loging.jsp
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<tiles:insertDefinition name="login.def"/>
tiles.xml
<tiles-definitions>
<definition name="baseLayout" template="/baseLayout.jsp">
<put-attribute name="title" value="Template"/>
<put-attribute name="header" value="/header.jsp"/>
<put-attribute name="menu" value="/menu.jsp"/>
<put-attribute name="body" value="/body.jsp"/>
<put-attribute name="footer" value="/footer.jsp"/>
</definition>
<definition name="login.def" extends="baseLayout">
<put-attribute name="title" value="Login form"/>
<put-attribute name="body" value="/login.jsp"/>
</definition>
<definition name="register.def" extends="baseLayout">
<put-attribute name="title" value="Register"/>
<put-attribute name="body" value="/register.jsp"/>
</definition>
<definition name="contact.def" extends="baseLayout">
<put-attribute name="title" value="contact"/>
<put-attribute name="body" value="/contact.jsp"/>
</definition>
</tiles-definitions>
的login.jsp
<%@taglib uri="/struts-tags" prefix="s"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<s:form>
<s:textfield name="email_id" label="Email"/>
<s:password name="password" label="Password"/>
<s:submit value="login"/>
</s:form>
</body>
</html>
答案 0 :(得分:0)
很可能你必须添加每个定义的相对路径
例如更改
value="/login.jsp"/>
在
value="/WEB-INF/path/to/your/login.jsp"/>
因此:
<definition name="login.def" extends="baseLayout">
<put-attribute name="title" value="Login form"/>
<put-attribute name="body" value="/WEB-INF/path/to/your/login.jsp"/>
</definition>
此外,我没有看到您的磁贴渲染和配置器的任何位置。你有没有在你的pom中添加瓷砖?