当前位置: 首页 > 知识库问答 >
问题:

如何将变量值从jstl传递给控制器

夏雅志
2023-03-14

我在jsp/jstl中有名字和密码,我试图将名字和密码传递给控制器。

这是我的控制器课程

包裹通讯。易于理解的控制器;

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标记库的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 variable)从此窗体传递给控制器。

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

有人能帮我怎么用c标签吗。。

我已经使用过commandName=“registereduser”,其中user是类registereduser的对象。

但我只是尝试传递变量(带有c标记),我在sysout中为用户获取空值

有什么办法可以在集合中使用c标记吗

谢谢你...

共有1个答案

韦衡
2023-03-14

在您的控制器中:

@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传递给隐藏输入的控制器,并将另一个@Request estParam添加到控制器方法:

JSP:

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

控制器方法:

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

我认为你不能用c标签向服务器发送用户值,你需要向控制器提交数据(表单)。

 类似资料:
  • 我想将countrySelection值传递给controller

  • 问题内容: 如何从JavaScript侦听器传递变量(id): 到ruby-on-rails控制器中的实例变量(@foo) 在视图(窗体)中正确创建关系: 谢谢! 问题答案: 如果我正确理解,执行此操作的一个好方法是使用AJAX将ID提交给您的操作,然后使用该操作来呈现表单。 您的javascript中看起来像这样: 您需要一条路线: 然后,在操作中,您可以获取该ID并呈现如下形式的表单: 然后,

  • 问题内容: 我需要更新我的时间。该值由正在执行的函数返回。 返回一个整数。 这将返回未防御状态。因此,我需要获取计数并将其传递给 问题答案: 如果您需要在每次调用之后更改重复间隔,则不能使用-使用恒定重复。您需要使用,因此您可以每次更改时间段:

  • 问题内容: 我了解到,已有问题和答案已经解决了此问题。我已经仔细检查了它们,但是由于我的处境,我无法应用这些线程中提供的解决方案。 假定JavaScript是客户端,而PHP是服务器端,则提供了以下两种解决方案: GET / POST方法(第3个帖子) 限制:Facebook页面选项卡应用程序 我无法使用以上方法通过URL传递参数,因为Facebook页面选项卡已加载到iFrame中,但它们无权访

  • 问题内容: 如何在不刷新页面的情况下将变量从jQuery传递到PHP?当我单击一个复选框时,我想将一个变量从jQuery传递到PHP。我也在使用formdialog。 我的PHP代码 我的JavaScript代码 问题答案: Ajax可以做到这一点。谷歌它,并检查api.jquery.com并查看ajax函数,.ajax(),.post(),.get(),.load()等。 关于您的特定问题,这是

  • 问题内容: 如何将值从javascript变量传递到razor变量,asp.net mvc razor视图引擎是否可能? 问题答案: 你不能 原因是他们不在同一时间“生活”。Razor变量是“服务器端变量”,在将页面发送到“客户端”后,它们不再存在。 当服务器收到视图请求时,它仅使用HTML,CSS和Javascript代码创建视图。没有C#代码,所有这些都被“翻译”为客户端语言。 当视图仍在服务