将数据从 servlet 发送到 cfm

Send data from servlet to cfm

我不想将数据从 HelloWorld servlet 发送到 index.cfm 页面。我用于输出“#data#”但它不起作用(写“#data#”)。如何将数据从 java servlet 输出到 .cfm 文件并在 cfm 页面中使用此数据创建列表,如在 jsp 中:<% List data= (List)request.getAttribute("data"); %>

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>

不确定您的 servlet 的具体细节,但这里有一个快速教程。

您的属性将作为 URL 或 FORM 参数出现。 CF 实际上将它们分成 2 个独立的范围。所以你可以试试:

<cfoutput>#url.data#</cfoutput>

如果它以范围形式出现,请使用:

<cfoutput>#form.data#</cfoutput>

您还可以尝试其他一些方法:

<cfdump var="#url#"/>

<cfdump var="#form#"/>

<cfdump var="#cgi#"/>

其中每一项都可能为您提供有关数据如何到达 CF 模板的线索。当然,您需要确保它 到达 那里 - 我在您的请求中没有看到 HOST。我假设 servlet 知道主机和协议应该是什么。

-马克

谢谢大家,
特别是 EJK 和 Mark A Kruger:

我解决了:<cfoutput>#Request.data#</cfoutput>