将Struts2标记和scriptlet与组合在一个页面中

将Struts2标记和scriptlet与组合在一个页面中,struts2,Struts2,这与我的项目代码无关,但我想到了一个问题 这是我的jsp页面,其中有Struts2标记和scriptlet的组合 这是不起作用的,如果我只保留Scriptlet代码,它会工作得很好 <%@ taglib prefix="s" uri="/struts-tags" %> <%@ page import = "java.util.ArrayList" %> <%@ page import = "java.util.List" %> <html> <

这与我的项目代码无关,但我想到了一个问题

这是我的jsp页面,其中有Struts2标记和scriptlet的组合 这是不起作用的,如果我只保留Scriptlet代码,它会工作得很好

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import = "java.util.ArrayList" %>
<%@ page import = "java.util.List" %>
<html>
<head>
<title>Struts 2 </title>

</head>
<body>


<s:form action="login" method="POST" >

<tr>
<td colspan="2">
Login
</td>
</tr>

<%
List list = (ArrayList)request.getAttribute("datareq");

for(int i=0;i<list.size();i++)
{
    System.out.println(list.get(i).toString());
}


%>

<s:submit value="Login" align="center"/>

</s:form>

</body>

</html>

支柱2
登录

当然,你可以将两者结合使用。我认为这只是为了证明这一点,因为有更好的迭代方法(struts iterate标记和jstl forEach标记),而且现在使用Scriptlet是非常罕见的,也就是说

你所提供的一切都很完美,但你应该意识到

//This writes to CONSOLE (In my case the glassfish log)
System.out.println(list.get(i).toString());

//This writes to the response
out.println(list.get(i).toString());

谢谢,我忘了包括异常堆栈跟踪。什么堆栈跟踪?您只需要写出out.println而不是System.out.println。