2017-07-24 280 views
0

**解決處理程序異常[[email protected]]:org.springframework.beans.TypeMismatchException:未能將類型'java.lang.String'的值轉換爲所需類型' INT「;嵌套異常是java.lang.NumberFormatException:對於輸入字符串: 「保存」 **無法將'java.lang.String'類型的值轉換爲所需的類型'int';對於輸入字符串:「save」

這是控制器部分

@Controller 
    public class EmpController { 

    private static final Logger logger = Logger 
      .getLogger(EmpController.class); 

    public EmpController() { 
     System.out.println("EmpController()"); 
    } 

    @Autowired 
    private EmpService service; 

    @Autowired 
    private UserService userservice; 

    public UserService getUserservice() { 
     return userservice; 
    } 


    public void setUserservice(UserService userservice) { 
     this.userservice = userservice; 
    } 


    public EmpService getService() { 
     return service; 
    } 


    public void setService(EmpService service) { 
     this.service = service; 
    } 



    @RequestMapping(value="login", method= RequestMethod.GET) 
    public ModelAndView showlogin(HttpServletRequest request, HttpServletResponse response) { 
     ModelAndView mav= new ModelAndView("login"); 
     mav.addObject("login", new User()); 
     return mav; 
    } 


    @RequestMapping(value="loginProcess", method= RequestMethod.POST) 
    public ModelAndView loginProcess(HttpServletRequest request, HttpServletResponse response, 
      Model model,@ModelAttribute("login") User user) { 
     ModelAndView mav = null; 
     boolean user1 = userservice.validateUser(user); 
     if(false != user1) { 

      List<Emp> list = service.getAllEmployees(); 
      model.addAttribute("list", list); 
      mav= new ModelAndView("empform","command",new Emp()); 
      mav.addObject("userId", user.getUserId()); 
     } else { 
      mav= new ModelAndView("login"); 
      mav.addObject("message","UserId and Password is wrong"); 
     } 
     return mav; 
    } 



    @RequestMapping(value="/empform", method= RequestMethod.GET) 
    public ModelAndView showform(Model model,@ModelAttribute("emp") Emp emp) throws IOException { 
     System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); 

     List<Emp> list = service.getAllEmployees(); 
     model.addAttribute("list", list); 
     return new ModelAndView("empform","command",new Emp()); 

    } 

    /* @RequestMapping(value="/newEmp", method= RequestMethod.GET) 
    public ModelAndView newContact(ModelAndView model) { 
     Emp emp = new Emp(); 
     model.addObject("emp", emp); 
     model.setViewName("empform"); 
     return model; 
    } */ 

    @RequestMapping(value = "/save", method = RequestMethod.POST) 
    public ModelAndView saveEmployee(@ModelAttribute Emp emp,Model model) { 
     System.out.println(">>>>welcome to save>>>>>"); 
     if (emp.getEmpId() == 0) { 
      service.save(emp); 
     } else { 
      service.update(emp); 

     } 
     List<Emp> list = service.getAllEmployees(); 
     model.addAttribute("list", list); 
     return new ModelAndView("redirect:/empform"); 
    } 


    @RequestMapping(value="/delete/{empId}", method= RequestMethod.GET) 
    public ModelAndView delete(Model model,@PathVariable int empId) { 
     service.delete(empId); 
     List<Emp> list = service.getAllEmployees(); 
     model.addAttribute("list", list); 
     return new ModelAndView("redirect:/empform"); 
    } 


    @RequestMapping(value="/edit/{empId}") 
    public ModelAndView edit(Model model,@PathVariable int empId) { 
     System.out.println(">>>>>>>>>>>edit"); 
     Emp emp= service.getEmpById(empId); 
     System.out.println(">>>>>>>>> continue edit>>>>"); 
     return new ModelAndView("empform","command", emp); 
    } 

}

這是彈簧srvlet。 XML

<context:component-scan base-package="com.controller"> 
    </context:component-scan> 

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

    <property name="prefix" value="/WEB-INF/"></property> 
    <property name="suffix" value=".jsp"></property> 
    </bean> 

    <bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver"> 
    </property> 
    <property name="url" value="jdbc:mysql://10.125.129.252:3306/nehaempdb"> 
    </property> 
    <property name="username" value="root"></property> 
    <property name="password" value="admin"></property> 
    </bean> 

    <bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"></property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop 
     key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop> 
      <prop key="hibernate.format_sql">true</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property> 
    <property name="packagesToScan" value="com.model"></property> 
</bean> 

<bean id="service" class="com.service.EmpService"> 

</bean> 

<bean id="userservice" class="com.service.UserService"> 
</bean> 

<bean id="dao" class="com.dao.EmpDao"> 
</bean> 
<bean id="userdao" class="com.dao.UserDao"> 
</bean> 

<!-- Transaction --> 
<bean id="transactionManager" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

<tx:annotation-driven transaction-manager="transactionManager" /> 

這是.JSP

<div align="center"> 
     <h1>New/Edit Employee</h1> 
     <form:form action="save" method="post" > 
     <table> 
      <form:hidden path="empId"/> 
      <tr> 
       <td>Name:</td> 
       <td><form:input path="empName" /></td> 
      </tr> 
      <tr> 
       <td>Salary:</td> 
       <td><form:input path="salary" /></td> 
      </tr> 
      <tr> 
       <td>DeptId:</td> 
       <td><form:input path="deptId" /></td> 
      </tr> 

      <tr> 
       <td colspan="2" align="center"><input type="submit" value="Save"></td> 
      </tr> 
     </table> 
     </form:form> 
    </div> 

    value="Save"></td> 
     </tr> 
    </table> 
    </form:form> 
</div> 

回答

0

這聽起來像你對我可能有一個@RequestMapping的資源類似「/(編號)」,當你試圖擊中你的「/保存」資源,而不是將它映射到您在您的問題中顯示的控制器方法,它試圖將資源「/ {id}」的整數ID解析爲單詞「save」。

要解決這個問題,你應該從「/(編號)」這個以前的資源映射用合適的前綴「/事/(編號)重命名爲。

+0

它不起作用,對此的描述是 - 客戶端發送的請求在語法上不正確。 –

+0

@ N.Patial你能告訴我你的整個控制器類嗎? – Plog

+0

是的,我已經編輯它上面。 –

0

我有這個同樣的問題,PLOG是關於有正確的數字路由圖

但是,您可以將「/ {id:\\ d +}」更改爲「/ {id}」,而不是將「/ {id}」更改爲「/ something /匹配「/保存」

我對所有「/ id」的情況使用數字正則表達式,這樣我就沒有這個問題,例如「/ users/25」和「/ users/forgotpassword」

相關問題