Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

[Struts, tiles] NPE при вставке tiles:insert attribute
Список форумов
 ->  Java и веб технологии


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
Daigotsu : 173
Новичок

СообщениеФев 13, 2012 11:25 
Ответить с цитатой
День добрый. Возникла неразрешимая мною проблема при работе с tiles в struts. Как бороться?
При попытке вставить на страницу layout.jsp например header получаю NPE: вот стэктрэйс:
Код:
org.apache.jasper.JasperException: An exception occurred processing JSP page /layouts/layout.jsp at line 20

17: <title>TITLE</title>
18:    </head>
19:    <body>
20:       <tiles:insert attribute="header"></tiles:insert>
21:    </body>
22:    </html:html>
23: </jsp:root>


Stacktrace:
   org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:428)
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

root cause

java.lang.NullPointerException
   org.apache.struts.tiles.taglib.InsertTag.processAttribute(InsertTag.java:690)
   org.apache.struts.tiles.taglib.InsertTag.createTagHandler(InsertTag.java:481)
   org.apache.struts.tiles.taglib.InsertTag.doStartTag(InsertTag.java:441)
   org.apache.jsp.layouts.layout_jsp._jspx_meth_tiles_005finsert_005f0(layout_jsp.java:141)
   org.apache.jsp.layouts.layout_jsp._jspx_meth_html_005fhtml_005f0(layout_jsp.java:98)
   org.apache.jsp.layouts.layout_jsp._jspService(layout_jsp.java:64)
   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
   org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)


собственно вот моя страница layout.jsp
Код:
<?xml version="1.0" encoding="UTF-8" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
   xmlns:tiles="http://struts.apache.org/tags-tiles"
   xmlns:html="http://struts.apache.org/tags-html" version="2.0">

   <jsp:directive.page contentType="text/html; charset=UTF-8"
      pageEncoding="UTF-8" session="true" />
   <jsp:output doctype-root-element="html"
      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
      omit-xml-declaration="true" />
   <html:html>
   <head>
<link rel="stylesheet" type="text/css"
   href="/css/style.css" />
<html:base />
<title>TITLE</title>
   </head>
   <body>
      <tiles:insert attribute="header"></tiles:insert>
   </body>
   </html:html>
</jsp:root>


вот конфиги:
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>NewsAggregator</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

<servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>
    org.apache.struts.action.ActionServlet
  </servlet-class>

  <init-param>
    <param-name>application</param-name>
    <param-value>
      com.corp.testapp.resource.application
    </param-value>
  </init-param>

  <init-param>
    <param-name>config</param-name>
    <param-value>
      /WEB-INF/struts-config.xml
    </param-value>
  </init-param>

 <init-param>
        <param-name>chainConfig</param-name>
        <param-value>org/apache/struts/tiles/chain-config.xml</param-value>
    </init-param>

  <load-on-startup>2</load-on-startup>

</servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>


struts-config.xml
Код:
<?xml version="1.0" encoding="UTF-8"?>

<struts-config>

   <form-beans>
      <form-bean name="newsForm" type="com.corp.testapp.presentation.form.NewsForm">
      </form-bean>
   </form-beans>

   <global-forwards>
      <forward name="newsList" path="/news.do?method=list"></forward>
   </global-forwards>

   <action-mappings>
      <action path="/news" type="com.corp.testapp.presentation.action.NewsAction"
         name="newsForm">

         <forward name="goListPage" path="page.newsList" />
         <forward name="goViewPage" path="page.newsView" />
         <forward name="goEditPage" path="page.newsEdit" />
         <forward name="goAddPage" path="page.newsAdd" />
      </action>
   </action-mappings>

   <message-resources parameter="resource.messages" null="false" />

   <plug-in className="org.apache.struts.tiles.TilesPlugin">
      <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
   </plug-in>

    <!-- Spring Struts plugin -->
   <!-- <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
      <set-property property="contextConfigLocation" value="/WEB-INF/SpringBeans.xml" />
   </plug-in> -->
</struts-config>

tiles-defs.xml
Код:
<?xml version="1.0" encoding="UTF-8"?>

<tiles-definitions>

   <definition name="main.definition" path="/layouts/layout.jsp">
      <put name="header" value="/tiles/header.jsp" />
      <put name="body" value="/tiles/main.jsp" />
      <put name="menu" value="/tiles/menu.jsp" />
      <put name="footer" value="/tiles/footer.jsp" />
   </definition>


   <definition name="page.newsList" extends="main.definition">
      <put name="body" value="/tiles/main.jsp" />
   </definition>


   <definition name="page.newsView" extends="main.definition">
      <put name="body" value="/tiles/view.jsp" />
   </definition>


   <definition name="page.newsEdit" extends="main.definition">
      <put name="body" value="/tiles/edit.jsp" />
   </definition>


   <definition name="page.newsAdd" extends="main.definition">
      <put name="body" value="/tiles/edit.jsp" />
   </definition>

</tiles-definitions>
К началу Посмотреть профиль Отправить личное сообщение
tender_swallow : 472
Бывалый
Откуда: Ivanovo

СообщениеФев 13, 2012 14:40 
Ответить с цитатой
На первый взгляд вроде все как надо. Может быть у Вас внутри header.jsp падает на NPE? Покажите ее содержимое.
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Daigotsu : 173
Новичок

СообщениеФев 13, 2012 15:13 
Ответить с цитатой
tender_swallow писал(а):
На первый взгляд вроде все как надо. Может быть у Вас внутри header.jsp падает на NPE? Покажите ее содержимое.

Спасибо за ответ! нет, по ошибке видно что до хедера не дошел ещё парсер.
НО я нашёл ошибку. Это - моя невнимательность. я в tiles-defs.xml указал
Код:
  <put name="menu" value="/tiles/menu.jsp" /

а jsp /tiles/menu.jsp не создал. Из-за этого такие беды.
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Java и веб технологии


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru