HDIV всегда перенаправляет на страницу с ошибкой HDIV_PARAMETER_NOT_EXISTS

Я пытаюсь внедрить HDIV в приложение Spring 3.1.

Я добавил зависимости в файл pom и слушателя, фильтр в файле web.xml.

Я выполнил настройку, как показано, и когда я получаю доступ к приложению, загружается страница приветствия, но после этого, если я получаю доступ к любой ссылке с экрана, она перенаправляется на страницу ошибок.

Я получаю сообщение об ошибке "HDIV_PARAMETER_NOT_EXISTS"

В чем может быть проблема?

Как отправить параметр HDIV в запросе. Нужно ли изменять JSP для отправки параметра HDIV в запросе?

web.xml:

     <listener>
    <listener-class>org.hdiv.listener.InitListener</listener-class>
    </listener>
<!-- HDIV Validator Filter -->
<filter>
    <filter-name>ValidatorFilter</filter-name>
    <filter-class>org.hdiv.filter.ValidatorFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>ValidatorFilter</filter-name>
    <!-- Spring MVC Servlet name-->
    <servlet-name>mvc-dispatcher</servlet-name>
</filter-mapping>


    <jsp-config>
         <taglib>
        <taglib-uri>http://www.springframework.org/tags/form</taglib-uri>
        <taglib-location>/WEB-INF/lib/spring-form.tld</taglib-location>
        </taglib>
        <taglib>
              <taglib-uri>http://www.springframework.org/tags</taglib-uri>
              <taglib-location>/WEB-INF/lib/spring.tld</taglib-location>
        </taglib>
         <taglib>
          <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
               <taglib-location>/WEB-INF/lib/hdiv-c.tld</taglib-location>
    </taglib>
</jsp-config>

pom.xml:

<dependency>
          <groupId>org.hdiv</groupId>
          <artifactId>hdiv-core</artifactId>
      <version>${org.hdiv-version}</version>
</dependency>
<dependency>
    <groupId>org.hdiv</groupId>
    <artifactId>hdiv-config</artifactId>
    <version>${org.hdiv-version}</version>
</dependency>
<dependency>
    <groupId>org.hdiv</groupId>
    <artifactId>hdiv-spring-mvc</artifactId>
    <version>${org.hdiv-version}</version>
    </dependency>
<dependency>
    <groupId>org.hdiv</groupId>
    <artifactId>hdiv-jstl-taglibs-1.2</artifactId>
    <version>${org.hdiv-version}</version>
</dependency>

конфигурация:

<hdiv:config excludedExtensions="css,png,gif,jpeg,jpg,js" errorPage="/errorPage.jsp">
<hdiv:startPages>/,/index.htm</hdiv:startPages>
</hdiv:config> 

<!-- Accepted pattern within the application for all editable parameters (generated from textbox and textarea) -->   
<hdiv:validation id="safeText">         
<hdiv:acceptedPattern><![CDATA[^[a-zA-Z0-9@.-_]*$]]></hdiv:acceptedPattern>     
</hdiv:validation>       
<!-- Finally, it's necessary to define editable data validation for the application -->    
<hdiv:editableValidations>         
<hdiv:validationRule url="/.*">safeText</hdiv:validationRule>     
</hdiv:editableValidations>

index.jsp:

        <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <html>
      <head>
      <title>Freight Management Tool</title>
      </head>
      <body  topmargin="0" leftmargin="0" >


    <div id="header">
        <%@include file="header.jspf"%>  
    </div> 
    <div id="content"> </div>
        <table width="100%" cellpadding="0" cellspacing="0" border="0">
            <tr class="topHeading">
                <td>
                <% if (request.isUserInRole("FMT_ADMIN")) { %>
                    <spring:message code = "index.admin"/>
                <% } if (request.isUserInRole("FMT_NM")) { %>
                    <spring:message code = "index.network.mngt"/>
                <% } if (request.isUserInRole("FMT_RM")) { %>
                    <spring:message code = "index.revenue.mngt"/>
                <% } if (request.isUserInRole("FMT_SALES")) { %>
                    <spring:message code = "index.sales"/>
                <% } %>
                </td>
                <td></td>
            </tr>
        </table>
        <table width="100%" cellpadding="0" cellspacing="0" border="0">
            <br/>
            <% if (!request.isUserInRole("FMT_SALES")) { %>
            <tr>
                <td width="2%"></td>
                <td width="15%" class="blackHeading"><spring:message code = "index.welcome"/> <h1><a href="/cargoalflights/SearchCargoalFlightMaster.htm"><spring:message code = "index.cargoal.search"/></a></h1></td>
                <td width="63%"></td>
            </tr>
            <% } else {%>
            <tr>
                <td width="2%"></td>
                <td width="15%" class="blackHeading"><spring:message code = "index.welcome"/> <h1><a href="/datedflight/DatedFlightSearch.htm"><spring:message code = "index.dated.flight.search"/></a></h1></td>
                <td width="63%"></td>
            </tr>
            <% } %>

        </table>

  </body>
</html>

DatedFlightController.java:

@RequestMapping("/datedflight/DatedFlightSearch.htm")
public ModelAndView datedFlightSearchScreen() {
return new ModelAndView("datedFlightSearch", "datedFlightDTO",
            datedFlightDTO);
}

1 ответ

Вы должны использовать теги JSTL или Spring для создания URL:

<c:url value="/datedflight/DatedFlightSearch.htm">

или же

<spring:url value="/datedflight/DatedFlightSearch.htm">

В противном случае HDIV не может включать идентификацию состояний в качестве параметра.

Другие вопросы по тегам