2016-05-29 6 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> 

プロジェクト構造:あなたはローカルホストでURLを打ったとき

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

あなたは、httpにアクセスしている:// localhostを:8080 /ログイン?エラーが発生していますか? – Daniel

+0

ありがとうJoao。上記の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

それは、あなたのコードの場合と同様の処理を行います。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

Punjanに感謝しますが、urも機能していないので、modelandviewが返されますが、String型を予期しています。私は変更して実行されても、同じ問題が発生しているhttpステータス404エラー –

+0

は動作していません –

1

コントローラクラスに@Controllerアノテーションがありません。注釈を使用してコントローラをインスタンス化しない限り、Springはurlのハンドラを作成しません。

+0

satyaはまだSAMエラーを取得していますhttp 404 MvcDemo/login not found –

+0

ログに/ loginのマッピングがありますか? –

+0

ああ、Initializing Springフレームワークサーブレットのディスパッチャのように –

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"); 
    } 


} 
関連する問題