Java 在JSP文件中正确使用函数

Java 在JSP文件中正确使用函数,java,javascript,html,jsp,Java,Javascript,Html,Jsp,我想使用jsp文件中的函数打印出3个按钮。什么是正确的方式,因为我的方式似乎是错误的 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <

我想使用jsp文件中的函数打印出3个按钮。什么是正确的方式,因为我的方式似乎是错误的

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Test Page</title>

        <%!
        int j = 3;
        %>

        <%!
        public void manyButtons() {
            for (int i = 0; i < j; i++) {
                %>
                <input type="button" value="button<%=i%>"/>
                <%!                
            }
        }

        %>        
    </head
    >
    <body>

        <% manyButtons(); %>

    </body>
</html>

测试页

正如评论中所说,您希望避免使用Java进行此操作。谢天谢地,您可以轻松地使用JSTL完成这项工作。使用forEach循环,如下所示:

 <c:forEach var="i" begin="1" end="3" step="1" varStatus="status">
   <input type="button" value="button${i}"/>
 </c:forEach>


这应该复制您正在尝试的操作

我不是JavaEE开发人员,但据我所知,您的JSP将被转换为servlet,其中包含您正在创建的方法。您必须知道,
request
response
对象被传递给
service()
方法,因此默认情况下,您的方法将无法访问响应对象,因此它无法从响应将输出数据放入写入器

如果您确实必须使用方法(我可能会为他使用JSTL like+1中的
),您可以将方法中生成的数据作为字符串返回,并在
中使用它们。我的意思是

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Test Page</title>

        <%!
        public String manyLabels(int j) {
            StringBuilder sb=new StringBuilder();
            for (int i = 0; i < j; i++) {
                sb.append("<input type=\"button\" value=\"button"+i+"\"/>");
            }
            return sb.toString();
        }
        %>        
    </head
    >
    <body>

        <%= manyLabels(3) %>

    </body>
</html>

测试页

避免在JSP中使用java编码,它们会变得非常混乱。随着代码的增加,您将很难识别匹配的大括号和标记。是的,它看起来确实错了。另外,对你想要实现的目标的解释还不够清楚。我想打印3个按钮。我正在调用函数manyButtons(),该函数假定从JSP主体执行此操作。