2016-05-29 2 views
0

Не могли бы вы помочь мне выяснить, как вызывать страницу входа с помощью моего контроллера?Spring MVC Пример простого контроллера

Вот мой код:

package com.mvc.demo; 

public class Emp { 
    private String name; 
    private String password; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

} 

MvcDemo.java (это мой контроллер, только для вызова страницы входа)

package com.mvc.demo; 

import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

public class MvcDemo { 

    @RequestMapping(value="/login", method = RequestMethod.GET) 
    public String showForm(Emp em) { 
      return "login"; 
    } 
} 

диспетчерского-servlet.xml

<context:component-scan base-package="com.mvc.demo" /> 
<mvc:annotation-driven /> 
<beans> 
<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 
</beans> 

веб .xml

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

login.jsp

<form:form action="#" method = "post" modelAttribute="emp"> 
     <form:label path="username">Enter your user-name</form:label> 
     <form:input id="username" name="username" path="name" /><br> 
     <form:label path="username">Please enter your password</form:label> 

     <form:password id="password" name="password" path="password" /><br> 

     <input type="submit" value="Submit" /> 
</form:form> 

проект Структура:

MvcDemo 
    JavaResources 
     src 
     com.mvc.demo 
    WebContent 
     jsp 
     login.jsp 
    WEB-INF 
    lib 
    web.xml 
    dispatcher-servlet.xml 
    index.jsp 
+0

Вы с доступом к HTTP: // локальный: 8080/логин? Вы получаете сообщение об ошибке? – Daniel

+0

Большое спасибо Жоао. пожалуйста, найдите мою конфигурацию в названии как dispatcher-servlet.xml –

+0

Почему бы не пойти в github, загрузить рабочую демонстрацию из весенних примеров https://github.com/spring-projects/spring-mvc-showcase или использовать google https: //www.google.co.in/search?q=github+spring+mvc+hello+world – tgkprog

ответ

0

Это то же самое, как и в вашем коде, когда вы попали URL с локального хоста: 8080/Mvc_Demo/входа в систему он должен показать ваш login.jsp, надеюсь, что это решает вашу проблему.

package com.mvc.demo; 

    import org.springframework.web.bind.annotation.RequestMapping; 
    import org.springframework.web.bind.annotation.RequestMethod; 

    import org.springframework.web.servlet.ModelAndView; 

    public class MvcDemo { 
    @RequestMapping(value="/login", method = RequestMethod.GET) 

    public String showForm() 
    { 
     ModelAndView mv = new ModelAndView("login"); 
     return mv; 


     } 
    } 
+0

спасибо много, но не работает даже ur, возвратил modelandview, но метод, ожидающий типа String. Я изменил и выполнил даже похоже на ту же проблему http status 404 error –

+0

его не работает –

1

Отсутствует аннотация @Controller на вашем классе контроллера. Spring не создает обработчик для URL-адреса, если вы не создаете экземпляр контроллера, используя аннотацию.

+0

спасибо satya все еще получаю ошибку sama http 404 MvcDemo/login not found –

+0

Вы видите какое-либо сопоставление для/входа в ваши журналы? –

+0

Ya like Initializing Spring servlet 'dispatcher' –

0

Попробуйте этот код:

package com.mvc.demo; 

import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

@Controller 
public class MvcDemo { 

    // To call the view for login 
    @RequestMapping(value = "/login", method = RequestMethod.GET) 
    public ModelAndView login() { 
     return new ModelAndView("login","newEmp", new Emp()); 
    } 

    // To call the validate login after submit 
    @RequestMapping(value = "/user-login", method = RequestMethod.POST) 
    @ResponseBody 
    public ModelAndView userLogin(Emp emp) { 
     //TODO check 'emp' object to validate user 
     return new ModelAndView("home"); 
    } 


} 
Смежные вопросы