Пожалуйста, помогите!!! Бьюсь уже третий день…  Все форумы излазил... Для меня это очень важно! Делаю тестовое задание в 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>
|
|