java - 修剪输入框并添加到上下文 JSTL

标签 java spring jakarta-ee spring-mvc jstl

我是 JSTL 世界的新手,所以请对我温柔一点,我已经阅读过,但找不到解决方案。

我想修剪输入框开头和结尾的空格,因此当用户单击提交按钮时,我的 Controller 会收到不带空格的字符串。

请不要建议我使用其他框架,因为我已经遇到了这个问题,当我掌握了这个之后,我将进入下一步。

这是我的JSP代码,我尝试过这个,但不起作用,似乎上下文没有保留我传递的值,之后我只是尝试......任何帮助表示赞赏!

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<!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">
<LINK REL=StyleSheet HREF="resources/index-style.css" TYPE="text/css">
<title>Submit a new academic!</title>
</head>
<div class="home">
    <a href="index"><img src="resources/home.png" /></a>
</div>
<div class="list">
    <h1>This is the place where you register a new Academic on the
        system!</h1>
</div>
<p></p>

<div class="list">
    <form action="addAcademicAction" method="post">
        <p>Submit your name:</p>
        <input type="text" name="academicName"><br>
        <p>Level of education</p>
        <input type="radio" name="educationLevel" value="student" checked>Student<br>
        <input type="radio" name="educationLevel" value="csstudent">Computer
        Science Student<br> <input type="radio" name="educationLevel"
            value="professor">Professor<br> <br>
        <button name="submit" type="submit" value="HTML">Add
            Academic!</button>
    </form>
</div>

<c:if test="${context.request.method=='POST'}">
    <c:set var="academicName" value="${fn:trim(param.academicName)}"/>
</c:if>

<body>
</body>
</html>

最佳答案

您似乎不了解 JSP 的工作原理。 JSP 在服务器端执行。这只是编写 servlet 的另一种方法。它的目标是生成 HTML,并将其发送到浏览器。

<c:set>标签用于设置页面范围属性。您可以将其视为当前 JSP 执行的本地变量。所以上面或多或少相当于这个:

out.println("<html>");
out.println("<head>");
...
out.println("</div>");
String academicName = null;
if (request.getMethod().equals("POST")) {
    academicName = request.getParameter("academicName").trim();
}
out.println("</body>");
out.println("</html>");

因此,明确地说,您正在定义一个从未使用过的局部变量。

如果你想修剪由JSP生成的表单提交的内容,则不是这个JSP必须修剪参数,而是Spring Controller 将接收表单提交,因此映射到路径“addAcademicAction” ”。

关于java - 修剪输入框并添加到上下文 JSTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223050/

相关文章:

Java Graphics2D 平移和缩放

java - 如何安排一天一次的 Hibernate 程序

java - EJB 计时器是否应该持久/可靠?

java - 比较整数时出现意外结果

java - 从 Java 调用 Kotlin — 错误 : package demo does not exist

java - 在没有 spring security 的 spring mvc 4.2 中 session 超时后重定向到登录页面

java - 理解切入点并访问advice中的注释参数

java - 如何创建Web服务器向Android应用程序提供数据

facebook-graph-api - Java HTTP 获取对 facebook 的请求。错误的请求

java - 具体类的动态代理