使用EL表达式和JSTL实现将文本框中的内容输出到页面的功能。 要求:在页面的文本框中输入内容,单击提交按钮后,输入框以及按钮消失,文本框中输入的内容显示到页面。 注意:此题在文本框中输入数据及提交后显示效果都是在同一页面内完成。
时间: 2024-11-27 07:19:31 浏览: 16
要实现这个功能,你需要在HTML中添加一些交互性和JSP EL表达式的结合。下面是一个简单的例子:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>动态显示输入内容</title>
</head>
<body>
<form id="myForm" action="#" method="post">
<input type="text" id="inputField" name="inputText" placeholder="请输入内容"/>
<button type="button" onclick="handleSubmit()">提交</button>
<hr/>
<p id="displayArea"></p>
<script>
function handleSubmit() {
var textField = document.getElementById("inputField");
var inputContent = textField.value;
if (inputContent) {
textField.style.display = "none";
document.getElementById("displayArea").innerText = "输入的内容: " + inputContent;
} else {
alert("请输入内容!");
}
// 防止表单提交导致页面刷新,可以考虑阻止默认提交行为
event.preventDefault();
}
</script>
</form>
<!-- 服务器端验证和展示内容,只在表单提交时才会运行 -->
<c:set var="inputContent" value="${empty param.inputText ? '' : param.inputText}" />
<c:if test="${not empty inputContent}">
<p style="color: green;">(服务器端) 已经接收到的内容: ${inputContent}</p>
</c:if>
</body>
</html>
```
在这个例子中:
1. 用户在表单的文本框中输入内容,点击提交按钮触发`handleSubmit` JavaScript 函数。
2. 函数获取文本框的值,如果非空,则隐藏文本框,并在页面下方的`displayArea`元素中显示输入的内容。
3. 使用`<c:set>`标签在服务器端存储文本框内容,然后在页面加载时通过EL表达式判断是否有内容。如果有,会在页面底部绿色显示。
4. 表单的默认提交行为被`event.preventDefault()`阻止,以保持页面停留在当前页。
阅读全文