package spring;import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.*;
import java.net.*;
import java.util.*;public class Login extends SimpleFormController {
    private String failview;
    private String succview;
    public Login() {
    }    protected ModelAndView onSubmit(Object cmd,
                                    BindException e) {
        LoginInfo loginfo = (LoginInfo) cmd;
        System.out.println("a");
        if (login(loginfo) == 0) {
            HashMap result_map = new HashMap();
            result_map.put("logininfo", loginfo);
            LinkedList msg_list = new LinkedList();
            msg_list.add("msg1");
            msg_list.add("msg2");
            msg_list.add("msg3");
            result_map.put("msg", msg_list);
            
            return new ModelAndView(this.getSuccessView(), result_map);
        } else {
            return new ModelAndView(this.getFailview());
        }    }    public String getFailview() {
        return this.failview;
    }    public String getSuccview() {
        return this.succview;
    }    public void setFailview(String failview) {
        this.failview = failview;
    }    public void setSuccview(String succ_view) {
        this.succview = succview;
    }    private int login(LoginInfo info) {
        System.out.println(info.getPassword() + ":");
        if (info.getUsername().equalsIgnoreCase("wen") &&
            info.getPassword().equalsIgnoreCase("111111")) {
            return 1;
        } else {
            return 0;
        }
    }
}

解决方案 »

  1.   

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <!--  - Application context definition for "springapp" DispatcherServlet.  -->
    <beans>
      <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass">
          <value>org.springframework.web.servlet.view.JstlView</value>
        </property>
        <property name="prefix">
          <value>/WEB-INF/view/</value>
        </property>
        <property name="suffix">
          <value>.jsp</value>
        </property>
      </bean>
      <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
          <props>
            <prop key="/login.do">LoginAction</prop>
          </props>
        </property>
      </bean>
      <bean id="LoginAction" class="spring.Login">
        <property name="commandClass">
          <value>spring.LoginInfo</value>
        </property>
         <property name="failview">
          <value>loginfail</value>
        </property>
          <property name="succview">
          <value>success</value>
        </property>
      </bean>
    </beans>
      

  2.   

    运行后出现的错误为
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'LoginAction' defined in ServletContext resource [/WEB-INF/config.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'failview' of bean class [spring.Login]: Bean property 'failview' is not writable or has an invalid setter method: Does the parameter type of the setter match the return type of the getter?
      

  3.   

    <bean id="LoginAction" class="spring.Login">
        <property name="commandClass">
          <value>spring.LoginInfo</value>
        </property>
         <property name="failview">
          <value>loginfail</value>
        </property>
          <property name="succview">
          <value>success</value>
        </property>
      </bean>可能是这里问题,
    仔细把资料查下,看具体是<property name="succview">里边的属性名是不是succview.
      

  4.   

    NotWritablePropertyException检查一下配置文件中的定义的属性在类里有没有对应的setter(注意拼写、大小写)
      

  5.   

    SimpleFormController里有successView,是继承的