如何将从servlet返回的值设置为JSP页面中的Textbox

时间:2014-08-23 08:33:38

标签: jsp jsp-tags

我创建了一个简单的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>也包括在内。我如何实现这一目标?

3 个答案:

答案 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')%>" />
相关问题