使用来自java类的字符串设置输入值
Set input value with a String which comes from a java class
我有一个输入字段,用户可以在其中输入ID。现在我想,产品名称将显示在一个单独的输入字段旁边的旧的。
<input type="text" name="productName" id="productName" disabled>
My JavaScript test:
<script type="text/javascript">
function setProductName() {
<%
int a = Integer.valueOf(request.getParameter("pName"));
String test = Projektarbeit.getProductName(a);
document.getElementById('productName').value = <%=test%>;
}
</script>
最后但并非最不重要的是我的方法,它获得Product Name,这个方法是在一个单独的Java类中!
public static String getProductName(int ID) {
String x = "";
try {
stmt = DBTools.getConnection().createStatement();
rs = stmt.executeQuery("SELECT NAME FROM PRODUCT WHERE ID = ' " + ID + "';");
while (rs.next()) {
x = rs.getString("Name");
}
rs.close();
stmt.close();
} catch (SQLException e) {
System.err.println("Error: " + e);
}
return x;
}
这可能不能解决您的所有问题,但是由于没有正确打开和关闭scriptlet标记,您尝试将JSP scriptlet的值打印到Javascript中失败了。此外,您需要将test
变量的打印括起来,因为它是一个字符串(否则您最终会在生成的Javascript中出现语法错误):
<script type="text/javascript">
function setProductName()
{
<%
int a = Integer.valueOf(request.getParameter("pName"));
String test = Projektarbeit.getProductName(a);
%>
document.getElementById('productName').value = "<%=test%>";
}
</script>
当然,在现实中,您需要对这种方法有更多的了解。当您调用Javascript函数setProductName()
时,它不会重新执行此JSP代码。这个JSP代码将在页面调用时执行一次,然后将test
的硬编码值打印到该页面的Javascript中。随后对Javascript函数setProductName()
的每次调用只会将元素的值设置为硬编码的test
值(直到页面刷新获得不同的值)。如果希望每次调用setProductName()
来执行服务器端代码并检索一个新值,则需要学习Ajax。但是由于这是基于request.getParameter("pName")
的数值,所以这里可能不需要关注。
相关文章:
- 将字符串的一部分设置为数组的一部分
- 将localStorage字符串设置为Integer
- 从 UTC 字符串设置日期格式
- 如何根据 URL 中符号后的第一个字符串设置变量
- 从本地存储 base64 字符串设置背景图像
- 从类似 csv 的字符串设置文本字段值
- 将 CodeMirror 子字符串设置为粗体而不更改模式
- jQuery:从参数字符串设置表单状态
- 如何使用字符串设置局部变量
- 按数字和字符串设置新的 Date() 会给出不同的结果
- 将字符串设置为类似日期的格式
- 避免基于特定URL字符串设置cookie
- 如何在将javascript字符串设置为从Django变量传播的值时转义引号
- 使用完全限定字符串设置JSON属性
- 需要根据模型数据中的字符串设置复选框
- 使用来自java类的字符串设置输入值
- 使用包含英国格式日期的字符串设置new Date()
- CRM 2011:使用javascript从字符串设置日期时间字段
- 将一个HTML字符串设置为等于javascript中的一个变量
- 如何将逗号分隔字符串设置为参数