我不想将数据从HelloWorld servlet发送到index.cfm页面。我用它来输出“#data#”但它不起作用(写“#data#”)。如何将来自java servlet的数据输出到.cfm文件并在cfm页面中创建包含此数据的列表,如jsp:<%List data =(List)request.getAttribute(“data”); %GT;
HelloWorld.java
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
request.setAttribute("data", "123");
String url = "/cfm/index.cfm";
request.getRequestDispatcher(url).forward(request, response);
}
}
index.cfm
<html>
<head>
<title>This is a test CFM page calling a Servlet page</title>
</head>
<body>
<cfoutput>
<br> #data#<br>
</cfoutput>
</body>
</html>
答案 0 :(得分:1)
不确定您的servlet的具体细节,但这是一个快速教程。
您的属性将以URL或FORM参数形式出现。 CF实际上将它们分成两个独立的范围。所以你可以试试:
<cfoutput>#url.data#</cfoutput>
如果它来自表单范围,请使用:
<cfoutput>#form.data#</cfoutput>
您可以尝试其他一些事项:
<cfdump var="#url#"/>
<cfdump var="#form#"/>
<cfdump var="#cgi#"/>
这些中的每一个都可能为您提供有关数据如何到达CF模板的线索。当然你要确保它到达那里 - 我的请求中没有看到主机。我假设servlet知道HOST和协议应该是什么。
-Mark
答案 1 :(得分:0)
谢谢大家,
尤其是EJK和Mark A Kruger:
我解决了:<cfoutput>#Request.data#</cfoutput>