将数据从servlet发送到cfm

时间:2015-01-02 17:14:45

标签: servlets coldfusion cfml

我不想将数据从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>

2 个答案:

答案 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>