2012-11-04 28 views
0

我是JSTL世界的新手,所以請對我溫柔,我已經閱讀過,但找不到解決方案。修剪輸入框並添加到上下文JSTL

我想從輸入框的開頭和結尾修剪空格,所以當用戶點擊提交按鈕時,我的控制器收到沒有空格的字符串。

請不要建議我使用其他框架,因爲我已經遇到了這個問題,當我掌握這個時,我會前進到下一步。

這是我的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> 
+0

我不認爲這是那麼難...... – Cristian

回答

1

您似乎不瞭解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控制器,它將接收表單提交,並將其映射到路徑「 addAcademicAction」。

+0

好的男人,謝謝。我會繼續閱讀。但首先我必須完成這件事。我想我將不得不在我的控制器中修剪我的輸入,太糟糕了String類的trim()方法刪除所有空格...... – Cristian