我创建了一个简单的Web服务来添加两个数字并使用Java中的控制台程序执行相同的操作。我希望将其转换为Web应用程序,其中我有三个文本框,两个用于用户输入,第三个用于结果。当用户单击添加按钮时,将调用Web服务并将结果显示在文本框中。
index.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" %>
<!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>Simple Web Service</title>
</head>
<body>
<form method="get" action="ServiceCall">
<input type="text" name="x" />
<input type="text" name="y" />
<input type="text" name="sum" disabled />
<button type="submit">Add</button>
</form>
<c:if test="${not empty result}">
<h1>${result}</h1>
</c:if>
</body>
</html>
此处结果将显示在带有h1标题的单独行上。我想将${result}
的值放在总和文本字段<input type="text" name="sum" disabled />
中。
参考此setting value of input textbox in jsp,我发现value='<%=${result}%>' />
会这样做。但是<c:if>..</c:if>
也包括在内。我如何实现这一目标?
答案 0 :(得分:3)
首先,完全忘记scriptlets(除了<%
之外的所有以<%@
开头的内容)。这些已经过时,不应再使用了。 JSP EL和JSTL是合适的工具。
您希望将结果设置为value
元素的input
属性的值。所以你需要的只是
<input type="text" name="sum" disabled value="${result}"/>
您不需要任何if
测试,因为如果结果为空,您还希望value属性为空字符串。如果你真的想使用if测试,那么就像你对h1那样使用它:
<input type="text" name="sum" disabled
<c:if test="${not empty result}">
value="${result}"
</c:if>
/>
答案 1 :(得分:0)
试试这个:
<input type="text" name="sum" disabled="disabled" value="${result}" />
答案 2 :(得分:0)
通过使用JSP scriptlet,您可以在文本框
中显示返回的值<input type="text" value="<%=request.getAttribute('YourAttributeName')%>" />