有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpringMVC简单控制器示例

你能帮我弄清楚如何使用我的控制器调用登录页面吗

这是我的密码:

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>

登录。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  

共 (3) 个答案

  1. # 1 楼答案

    控制器类上缺少@Controller注释。除非您使用注释实例化控制器,否则Spring不会为url创建处理程序

  2. # 2 楼答案

    请尝试以下代码:

    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");
        }
    
    
    }
    
  3. # 3 楼答案

    它的作用与代码中的相同,当您使用localhost:8080/Mvc_Demo/login点击url时,它必须显示您的登录名。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;
    
    
           } 
         }