java - Spring MVC 请求参数

标签 java jsp spring-mvc jstl

我有一个登录页面,其表单操作为j_security_check。截至目前,该表单只有两个字段,即用户名 和密码。我想向此表单添加一个新的下拉列表,并使用收集 Controller 中的选定值 @RequestParam。由于某种原因,我无法将此下拉值从 JSP 传递到我的 Controller ,因为它抛出 异常:MissingServletRequestParameterException(每当请求参数丢失时都会发生)。
在下面的代码中,我添加了视觉效果下拉列表。我需要在这里使用 Spring:Bind 标签吗? 此外,成功登录后,控件将定向到具有请求映射 /controller1.html 的 Controller ,这就是 我正在尝试收集下拉值。

<form name="appLogin" action="j_security_check" method="POST">

<table width="100%">
    <tr>
        <td align="center">

        <table>
            <tr>
                <td>Username: </td>
                <td><input id="userName" name="j_username" value=""/></td>
            </tr>
            <tr>
                <td>Password: </td>
                <td><input name="j_password" type="password" value="" /></td>
            </tr>

                <tr>
                <td>Visual: </td>
                <td><Select name="visuals" id="visuals"/>
                      <option value="S1">S1</option>
                      <option value="S2">S2</option>
                      <option value="S3">S3</option>
                      <option value="S4">S4</option>
                    </Select>
                </td>
            </tr>

        </table>

        <table>
            <tr>
                <td>
                <button type="submit" name="submit" value="Sign In">Sign In</button>
                <input type="submit"/>
                </td>
            </tr>
        </table>
        </div>
        </div>
        </td>
    </tr>
</table>
</form>

Controller 代码:

 @RequestMapping( value = " /controller1.html", method = RequestMethod.GET )
    public String setupForm( @RequestParam(value = "visuals", required=false) String visuals,
            ModelMap model )
    {
        List<String> studentNames = new ArrayList<String>();
        List<String> teacherNames = new ArrayList<String>();


         model.addAttribute("someData", teacherNames);
         model.addAttribute("anotherData", studentNames);

        model.addAttribute("visuals", visuals);

        log.info("Role from Dropdown:  " + visuals);

        return "school/classTen";
    }

最佳答案

您需要通过扩展AbstractAuthenticationProcessingFilter来创建您自己的过滤器

我眼前没有完整的代码,但以下文章可以帮助您:

http://mark.koli.ch/2010/07/spring-3-and-spring-security-setting-your-own-custom-j-spring-security-check-filter-processes-url.html

关于java - Spring MVC 请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822254/

相关文章:

java - Spring 批处理 - 后退一步执行或重新执行之前执行的步骤

java - 如何在eclipse中将jsp文件链接到另一个jsp?

java - Spring MVC 基于注释的 Controller 和@RequestMapping 的缩小问题

java - 从 Spring Boot RestController 使用多个服务时获取 ClassCastException

java - Python 将字节写入 Redis,但 Java 读取它时出现异常

java - 如何在提供下载选项后重定向到java中的另一个页面

java - 在 Java 中使用此方法需要哪些 API?

java - 在 JSP 屏幕上显示动态 UTC 时钟时间

css - 隐藏的 div 在 IE 中的位置有大的空白

java - 无法调试 Controller 错误