Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с Tiles! JSP содержащие struts-html не работают.. 
V
    Опции темы
Snach
Дата 17.11.2010, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.3.2008

Репутация: нет
Всего: нет



Пожалуйста, помогите!!! Бьюсь уже третий день… smile  Все форумы излазил... Для меня это очень важно!
Делаю тестовое задание в NetBeans 6.8 на Tomcat. Вывод данных организован с помощью struts-tiles. Все работает, но если в одну из дочерних JSP вставить тег <html:form ></html:form >, то при построении и выводе в браузер статического HTML не отображается вся информация этого JSP и всех следующих JSP, подключенных за ним. А без struts -тэга формы мне никак…


Исходники:
index.jsp
Код

<%@page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<tiles:insert page="/layout.jsp" flush="true">
    <tiles:put name="title" value="Test task" />
    <tiles:put name="header" value="/header.jsp" />
    <tiles:put name="menu" value="/menu.jsp" />
    <tiles:put name="body" value="/newslist.jsp" />
    <tiles:put name="footer" value="/footer.jsp" />
</tiles:insert>


layout.jsp
Код


<%@page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>



<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title><tiles:getAsString name="title" ignore="true" /></title>
    </head>
    <body>
       
        <table border="1" cellpadding="2" cellspacing="2" width="100%">
            <tr>
                <td height="20%" colspan="2">
                    <tiles:insert attribute="header"  />
                </td>
            </tr>
            <tr>
                <td width="20%" height="250">
                    <tiles:insert attribute="menu" />
                </td>
                <td>
                    <tiles:insert attribute="body"  ignore="true" />
                </td>
            </tr>
            <tr>
                <td height="20%" colspan="2">
                    <tiles:insert attribute="footer" />
                </td>
            </tr>
        </table>
    </body>
</html>



header.jsp
Код

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
    <head>
    </head>
    <body>
     <div align="left"  style="font-weight:bold; color: red; font-size: large">
         News management
     </div>
     <div align="right"  style=" color: blue; font-size: small">
           <a href="Link.do?method=friends" >Engish</a>
           <a href="Link.do?method=office" >Russian</a>
     </div>
    </body>
</html>


menu.jsp
Код

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <a href="NewsAction.do?method=list" >News List</a><br>
        <a href="NewsAction.do?method=edit" >Add News</a>
    </body>
</html>


Вот она! Проблемная страница:

newslist.jsp
Код

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html:form action="/NewsAction">
<table border="4">

<c:forEach var="oneNews" items="${allNews}" varStatus="status">

    <tr>
        <td class="nowrap"><c:out value="${oneNews.newsTitle}"/></td>
        <td class="nowrap"><c:out value="${oneNews.newsDate}"/></td>
        <td class="nowrap"><c:out value="${oneNews.newsBrief}"/></td>


        <td class="nowrap">
            <c:url var="url" scope="page" value="/NewsAction.do?method=edit">
                <c:param name="newsMessage" value="${oneNews}"/>
            </c:url>
            <a href="${url}">View</a>

            <c:url var="url" scope="page" value="/NewsAction.do?method=view">
                <c:param name="newsMessage" value="${oneNews}"/>
            </c:url>

            <a href="${url}">Edit</a>
        </td>
        <td class="nowrap"><input type="checkbox" name="id" value="${oneNews.newsId}" checked></td>
    </tr>
</c:forEach>
</table>
    <html:submit/>
</html:form>

И остальные, почти пустые JSP-шки.

struts-config:
Код

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">


<struts-config>
    <form-beans>

    </form-beans>

    <global-exceptions>

    </global-exceptions>

    <global-forwards>
        <forward name="welcome"  path="/Welcome.do"/>
    </global-forwards>

   <action-mappings>

- <action path="/NewsAction" parameter="method" type="by.epam.struts.NewsAction">
  <forward name="News List" path="News List" />
  <forward name="Add News" path="Add News" />
  </action>
  <action path="/deliteNews" name="DeliteAction" parameter="delite" type="by.epam.struts.NewsAction"/>
    </action-mappings>
    
    <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

    <message-resources parameter="by/epam/struts/ApplicationResource"/>
    
    <plug-in className="org.apache.struts.tiles.TilesPlugin" >
        <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />      
        <set-property property="moduleAware" value="true" />
    </plug-in>
    
    <!-- ========================= Validator plugin ================================= -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property
            property="pathnames"
            value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in>
</struts-config>


tiles-defs:
Код

<?xml version="1.0" encoding="UTF-8" ?>

 <!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
       "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">

<tiles-definitions>

    <definition name="${YOUR_DEFINITION_HERE}"/>
<definition name="News List" path="/layout.jsp">
  <put name="title" value="News List" />
  <put name="header" value="/header.jsp" />
  <put name="menu" value="/menu.jsp" />
  <put name="body" value="/newslist.jsp" />
  <put name="footer" value="/footer.jsp" />
 </definition>
 <definition name="Add News" extends="News List">
  <put name="title" value="Add News" />
  <put name="body" value="/addnews.jsp" />


  </definition>

</tiles-definitions>



web.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>2</param-value>
        </init-param>
        <init-param>
            <param-name>detail</param-name>
            <param-value>2</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>PagesDispatchAction</servlet-name>
        <servlet-class>by.epam.struts.PagesDispatchAction</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>NewsAction</servlet-name>
        <servlet-class>by.epam.struts.NewsAction</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>NewsForm</servlet-name>
        <servlet-class>by.epam.struts.NewsForm</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>PagesDispatchAction</servlet-name>
        <url-pattern>/PagesDispatchAction</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>NewsAction</servlet-name>
        <url-pattern>/NewsAction</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>NewsForm</servlet-name>
        <url-pattern>/NewsForm</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <jsp-config>
        <taglib>
            <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
            <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
            <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
            <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
            <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
            <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
        </taglib>
    </jsp-config>
</web-app>


PM MAIL   Вверх
iluvatar
Дата 18.11.2010, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 17.9.2007

Репутация: 4
Всего: 4



Если есть ошибка - должен быть и лог куда пишется сообщение об этой ошибке. Поищите в логах томката
Не совсем понятно причем здесь tiles, проблема исключительно одной тег-либы
Надо проверить, что файл действительно деплоиться в WEB-INF

PM MAIL ICQ   Вверх
Snach
Дата 18.11.2010, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.3.2008

Репутация: нет
Всего: нет



Нашел ошибку! smile  Спасибо всем, кто потратил время)))
Глупейшая ошибка: 
Забыл заполнить в struts-конфиге
Код

    <form-beans>

    </form-beans>

 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.