org.apache.tiles.util.TilesIOException:JSPException包括路径' /login.jsp'

时间:2015-07-25 11:38:29

标签: struts2 tiles

我是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>

1 个答案:

答案 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中添加瓷砖?