0

jsp/jstlに名前とパスワードがあります。名前とパスワードをコントローラーに渡そうとしました。

これは私のコントローラークラスです

パッケージcom.simple.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/welcome")
public class HelloController {
    private String name;
    private String password;
        private String user;
    @RequestMapping(method = RequestMethod.POST)
    public String printWelcome(ModelMap model) {
            System.out.println(user);
        model.addAttribute(name);
        model.addAttribute(password);

        model.addAttribute("message", "Spring 3 MVC Hello World");
        return "hello";

    }

}

これは、フォームタグとcタグライブラリを備えたindex.jspです。

  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Registration Page</title>
    </head>
    <body bgcolor="#999966">
<p>&nbsp;</p>
<form method="POST" action="welcome">

<p><font color="#800000" size="5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
UserName:</font><input type="text" name="name" size="20"></p>
 <c:set var="user" value="{param.name}" scope="request">
</c:set> 

<p><font color="#800000" size="5">
password:</font><input type="text" name="password" size="20"></p>
<p><input type="submit" value="Submit" name="B1"></p>
</form>
</body>
    </html>

このフォームからコントローラーに変数user(値はname変数から取得されます)を渡そうとしています。

<c:set var="user" value="{param.name}" scope="request">
    </c:set> 

どんな体でもcタグでこれを行う方法を教えてくれますか。

私はcommandName="registereduser"を使用して完了しました。ここで、userはクラスRegisteredUserのオブジェクトです。

しかし、私は変数(cタグ付き)を渡すだけで試しています私はsysoutのユーザーにnull値を取得しています

セットでcタグを使用する方法はありますか

ありがとうございました..

4

1 に答える 1

2

コントローラ内:

@Controller
@RequestMapping("/welcome")
public class HelloController {

    @RequestMapping(method = RequestMethod.POST)
    public String printWelcome(ModelMap model, @RequestParam String name, @RequestParam String password) {    
        // do something with name & password
        model.addAttribute(name);
        model.addAttribute(password);
        model.addAttribute("message", "Spring 3 MVC Hello World");
        return "hello";
    }
}

およびJSPで(通常のHTMLフォームを使用する必要があります):

<form method="POST" action="welcome">
    <table>
        <tr>
            <td>User Name :</td>
            <td><input type="text" id="name" name="name"/></td>
        </tr>
        <tr>
            <td>Password :</td>
            <td><input type="password" id="password" name="password"/></td>
        </tr>

        </table>
        <tr>
            <td colspan="2"><input type="submit"></td>
        </tr>
    </table>
</form>

質問への編集(ユーザー変数が追加されました):入力を非表示にしてコントローラーに渡し、コントローラーメソッドに別の入力を追加する
必要があります:user@RequestParam

JSP:

<input type="hidden" id="user" name="user" value="${name}"/>

コントローラ方式:

    public String printWelcome(ModelMap model, @RequestParam String name, 
@RequestParam String password, @RequestParam String user) { 
        ...

usercタグでサーバーに値を送信することはできないと思います。データ(フォーム)をコントローラーに送信する必要があります。

于 2012-09-27T13:25:39.763 に答える