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