从使用从<a:href> </a:href>加载的jsp页面加载bean时出错

时间:2015-03-30 07:38:04

标签: spring-mvc

我有一个名为menu.jsp的jsp页面,我已经通过<a href="jsp/cls/ClsEdit.jsp?action=create">

给了另一个名为ClsEdit.jsp的页面链接

当我在menu.jsp中给出这一行时,它加载没有任何问题。但是当我在ClsEdit.jsp中给出相同的行时,我得到以下异常。请告诉我使用链接有什么问题。

<form:hidden path="ukey" />

的web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>



<!DOCTYPE web-app

  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

  "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">



<web-app>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/tradelc-servlet.xml

</param-value>

</context-param>

       <listener>

              <listener-class>com.bankofny.inx.omx.lc.web.util.SessionListener</listener-class>

       </listener>

       <listener>

             <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

       </listener> 





       <servlet>

              <servlet-name>tradelc</servlet-name>           

              <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        

              <load-on-startup>1</load-on-startup>

       </servlet>





       <servlet-mapping>

              <servlet-name>tradelc</servlet-name>

              <url-pattern>/</url-pattern>

       </servlet-mapping>





</web-app>

tradelc-sevlet.xml:

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



<beans xmlns="http://www.springframework.org/schema/beans"

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns:context="http://www.springframework.org/schema/context"

   xmlns:p="http://www.springframework.org/schema/p"

   xmlns:mvc="http://www.springframework.org/schema/mvc"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

          http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

          http://www.springframework.org/schema/context

          http://www.springframework.org/schema/context/spring-context-4.0.xsd

          http://www.springframework.org/schema/mvc

          http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">



   <context:annotation-config />

   <!-- Scans within the base package of the application for @Components to configure-->

   <context:component-scan base-package="com.bankofny.inx.omx.lc.web" />



   <!-- Enables the Spring MVC @Controller programming model -->

   <mvc:annotation-driven />



   <bean name="clsData" class="com.bankofny.inx.omx.lc.web.bean.ClauseData">

    </bean>





   <bean id="messageSource"

          class="org.springframework.context.support.ResourceBundleMessageSource">

          <property name="basename" value="resources.application" />

   </bean>





   <bean id="viewResolver"

          class="org.springframework.web.servlet.view.InternalResourceViewResolver">

          <property name="viewClass"

                 value="org.springframework.web.servlet.view.JstlView"></property>

          <property name="prefix" value="/jsp/"></property>

          <property name="suffix" value=".jsp"></property>

   </bean>

引入了menu.jsp

<%@ page language="java"  errorPage="errors/general.jsp" %>

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

<%@ taglib uri="/WEB-INF/tlc.tld" prefix="tlc" %>

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>



<form:form action="/tradelc/ClsSave" method="POST">

<form:hidden path="ukey" />

<table width=100%>

  <tr>

       <td>

<a href="jsp/cls/ClsEdit.jsp?action=create">

       Test clause link

       </a href>

</td>

</tr>

</table>

</form:form>

ClsEdit.jsp内部

   <form:hidden path="ukey" />

ControllerJava.java:

@Controller

@SessionAttributes("clsData")//tried adding to sessions

public class ControllerJava{

    @ModelAttribute("clsData")//mapped the model attribute

    public ClauseData createBean() {

        return new ClauseData();

    }



    @RequestMapping(value = "jsp/cls/ClsEdit")//tried mapping the link here, so that I can add the ‘bean’ to ‘command’ here, but the control did not come here at all, the SOP did not print

    public ModelAndView returnClsEdit()

    {

       System.out.println("is it coming nside this method");

              return new ModelAndView("ClsEdit");



    }

@RequestMapping(value = "/informlogin", method = RequestMethod.GET)

    public ModelAndView execute( HttpServletRequest  request,

                                 HttpServletResponse response,

                                 @ModelAttribute("clsData") ClauseData clauseData,

                                 BindingResult bindingResult)

        throws Exception {

.

.

.

.

. return new ModelAndView("menu", "command", new ClauseData());

    }

}

例外:

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute

    org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)

    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)

    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)

    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)

    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)

    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)

    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)

    org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)

    org.springframework.web.servlet.tags.form.HiddenInputTag.writeTagContent(HiddenInputTag.java:79)

    org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)

    org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)

0 个答案:

没有答案