gpt4 book ai didi

java - 为什么 JSP out.print() 函数不能正常工作

转载 作者:行者123 更新时间:2023-12-01 15:15:56 27 4
gpt4 key购买 nike

我一直在使用 JSP+Java+Html,并且在 for 循环中遇到了 out.print() 函数的问题。我的功能getGeneAvailableTaxonomies()返回整数列表(类型为 List<Integer> ),我想在界面中打印这些数字。

这是我的代码:

 for(Integer i : ApplicationExtender.getApplicationExtender(application).getGeneAvailableTaxonomies()) 
{
out.print(String.format("<option value=\"%1$d\">%2$s</option>", i, TaxonId.getOrganismFromId(i)));
}

多西%1$d应该代表第 i 个整数值,而 %2$s应代表另一个参数,分类 id 值作为字符串。

但是,不幸的是,这就是出现的情况:

enter image description here

虽然我希望看到类似的内容:

enter image description here

我的 out.print() 函数调用肯定有错误...但是出了什么问题?

非常感谢

最佳答案

您的格式字符串中不需要“$”。您可能知道,使用 scriptlet 并不是进行 Java Web 开发的好方法。我认为使用 JSTL 更好,因为您不会将 Java 代码与 JSP 中的标记混合在一起。

编辑: 正如我之前所说, printf 方法不存在于 out 对象中,因为它是一个 JspWriter,并且 JspWriter 不是从 PrintWriter(具有 printf)继承的。对不起。所以,试试这个(它对我有用)。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<select>
<%
String[] strings = new String[]{ "aaa", "bbb", "ccc", "ddd" };

for ( int i = 0; i < strings.length; i++ ) {
out.print( String.format( "<option value='%d'>%s</option>", i, strings[i] ) );
}
%>
</select>
</body>
</html>

如果您想像在 Servlet 中一样使用 PrintWriter,那么这将起作用:

<%@page import="java.io.PrintWriter"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<select>
<%
PrintWriter writer = new PrintWriter( out );
String[] strings = new String[]{ "aaa", "bbb", "ccc", "ddd" };

for ( int i = 0; i < strings.length; i++ ) {
writer.printf( "<option value='%d'>%s</option>", i, strings[i] );
}
%>
</select>
</body>
</html>

关于java - 为什么 JSP out.print() 函数不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11614886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com