Java 在servlet中包含jsp文件的内容
我需要在servlet中包含jsp文件的内容。我试过这个Java 在servlet中包含jsp文件的内容,java,jsp,servlets,Java,Jsp,Servlets,我需要在servlet中包含jsp文件的内容。我试过这个 out_str = "<jsp:include page=\"jsp/agentMenu.jsp\"/>"; 这里的_str是一个字符串类型的变量 但这不起作用 编辑:我正在使用post请求并获得响应。根据该结果,显示内容将有所不同 private void initCall(String urlParameters) { String result = ""; try { //result
out_str = "<jsp:include page=\"jsp/agentMenu.jsp\"/>";
这里的_str是一个字符串类型的变量
但这不起作用
编辑:我正在使用post请求并获得响应。根据该结果,显示内容将有所不同
private void initCall(String urlParameters) {
String result = "";
try {
//result = sendPostRequest(urlParameters);
result = "0#04#Succesfully Login";
System.out.println(result); //for debugging
String[] out_array = splitResult(result);
if (Integer.parseInt(out_array[0]) == 0) { //success
System.out.println("SUCCESS");
switch (Integer.parseInt(out_array[1])) {
case 1:
out_str = "<html>\n"
+ "<body align=\"center\">\n"
+ "<center><h2>RobiCash</h2>\n"
+ "<p>Invalid PIN<p></center>\n"
+ "<a href=\"jsp/login.jsp\">Exit</a>"
+ "</body>\n"
+ "</html>";
break;
case 2:
out_str = "<html>\n"
+ "<body align=\"center\">\n"
+ "<center><h2>RobiCash</h2>\n"
+ "<p>Invalid Mobile Number<p></center>\n"
+ "<a href=\"jsp/login.jsp\">Exit</a>"
+ "</body>\n"
+ "</html>";
break;
case 3:
out_str = "<html>\n"
+ "<body align=\"center\">\n"
+ "<center><h2>RobiCash</h2>\n"
+ "<p>System Error<p></center>\n"
+ "<a href=\"jsp/login.jsp\">Exit</a>"
+ "</body>\n"
+ "</html>";
break;
case 4: //Agent
System.out.println("AGENT");
//out_str.concat("<%@ include file=\"jsp/agentMenu.jsp\" %>");
out_str = <jsp:include page="jsp/agentMenu.jsp" />;
/*out_str = "<html>\n"
+ "<body align=\"center\">\n"
+ "<h2>RobiCash</h2>\n"
+ "<h3>Agent Main Menu</h3>\n"
+ "<table align=\"center\">\n"
+ "<tr><td>1:</td><td><a href=\"agent_2.htm\">Top-Up/Recharge (P2)</a></td></tr> \n"
+ "<tr><td>2:</td><td><a href=\"jsp/billPayment.jsp\">Bill Payment</a></td></tr>\n"
+ "<tr><td>3:</td><td><a href=\"agent_2.htm\">Bill Check</a></td></tr>\n"
+ "<tr><td>4:</td><td><a href=\"agent_3.htm\">Cash IN (P2)</a></td></tr>\n"
+ "<tr><td>5:</td><td><a href=\"agent_4.htm\">Cash OUT (P2)</a></td></tr>\n"
+ "<tr><td>6:</td><td><a href=\"agent_5.htm\">Customer Registration</a></td></tr>\n"
+ "<tr><td>6:</td><td><a href=\"agent_6.htm\">My Balance</a></td></tr>\n"
+ "<tr><td>7:</td><td><a href=\"agent_7.htm\">More</a></td></tr>\n"
+ "<tr><td>8:</td><td><a href=\"jsp/login.jsp\">Exit</a></td></tr>\n"
+ "</table>\n"
+ "</body>\n"
+ "</html>\n";*/
break;
case 5: //DSR
break;
case 6: //Distributor
break;
case 7: //Master Distributor
break;
default:
break;
}
} else { //fail
}
} catch (Exception e) {
e.printStackTrace();
}
response = ServletActionContext.getResponse();
response.setContentType("text/html");
PrintWriter printWriter = null;
try {
printWriter = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
StringBuffer _bf = new StringBuffer();
_bf.append(out_str);
printWriter.write(_bf.toString());
printWriter.flush();
printWriter.close();
}
如有任何建议,将不胜感激
先谢谢你
RequestDispatcher rd = request.getRequestDispatcher(“jsp/agentMenu.jsp”);
rd.include(request, response);
您可以使用上面的代码
out_str = <jsp:include page="jsp/agentMenu.jsp" />;
我认为这应该行得通。否则,请再次检查路径或使用请求调度程序。问题是因为您正在将字符串写入Servlet响应。使用PrintWriter.write在响应中写入的内容被视为HTML字符串或简单字符串,并写入到响应或浏览器中,浏览器不会将其作为JSP执行。 对于语句out_str=您必须解释或执行JSP页面才能使其生效。因此,这被视为简单的HTML字符串,并不能导致结果JSP内容,这是您想要的输出 请在当前响应中包含您可以使用的任何其他内容,如下所示
RequestDispatcher rd = request.getRequestDispatcher("jsp/agentMenu.jsp");
rd.include(request, response);
将上述行包括在案例:4条件中
编辑:我正在使用post请求并获得响应。根据该结果,显示内容将有所不同
private void initCall(String urlParameters) {
String result = "";
try {
//result = sendPostRequest(urlParameters);
result = "0#04#Succesfully Login";
System.out.println(result); //for debugging
String[] out_array = splitResult(result);
if (Integer.parseInt(out_array[0]) == 0) { //success
System.out.println("SUCCESS");
switch (Integer.parseInt(out_array[1])) {
case 1:
out_str = "<html>\n"
+ "<body align=\"center\">\n"
+ "<center><h2>RobiCash</h2>\n"
+ "<p>Invalid PIN<p></center>\n"
+ "<a href=\"jsp/login.jsp\">Exit</a>"
+ "</body>\n"
+ "</html>";
break;
case 2:
out_str = "<html>\n"
+ "<body align=\"center\">\n"
+ "<center><h2>RobiCash</h2>\n"
+ "<p>Invalid Mobile Number<p></center>\n"
+ "<a href=\"jsp/login.jsp\">Exit</a>"
+ "</body>\n"
+ "</html>";
break;
case 3:
out_str = "<html>\n"
+ "<body align=\"center\">\n"
+ "<center><h2>RobiCash</h2>\n"
+ "<p>System Error<p></center>\n"
+ "<a href=\"jsp/login.jsp\">Exit</a>"
+ "</body>\n"
+ "</html>";
break;
case 4: //Agent
System.out.println("AGENT");
//out_str.concat("<%@ include file=\"jsp/agentMenu.jsp\" %>");
out_str = <jsp:include page="jsp/agentMenu.jsp" />;
/*out_str = "<html>\n"
+ "<body align=\"center\">\n"
+ "<h2>RobiCash</h2>\n"
+ "<h3>Agent Main Menu</h3>\n"
+ "<table align=\"center\">\n"
+ "<tr><td>1:</td><td><a href=\"agent_2.htm\">Top-Up/Recharge (P2)</a></td></tr> \n"
+ "<tr><td>2:</td><td><a href=\"jsp/billPayment.jsp\">Bill Payment</a></td></tr>\n"
+ "<tr><td>3:</td><td><a href=\"agent_2.htm\">Bill Check</a></td></tr>\n"
+ "<tr><td>4:</td><td><a href=\"agent_3.htm\">Cash IN (P2)</a></td></tr>\n"
+ "<tr><td>5:</td><td><a href=\"agent_4.htm\">Cash OUT (P2)</a></td></tr>\n"
+ "<tr><td>6:</td><td><a href=\"agent_5.htm\">Customer Registration</a></td></tr>\n"
+ "<tr><td>6:</td><td><a href=\"agent_6.htm\">My Balance</a></td></tr>\n"
+ "<tr><td>7:</td><td><a href=\"agent_7.htm\">More</a></td></tr>\n"
+ "<tr><td>8:</td><td><a href=\"jsp/login.jsp\">Exit</a></td></tr>\n"
+ "</table>\n"
+ "</body>\n"
+ "</html>\n";*/
break;
case 5: //DSR
break;
case 6: //Distributor
break;
case 7: //Master Distributor
break;
default:
break;
}
} else { //fail
}
} catch (Exception e) {
e.printStackTrace();
}
response = ServletActionContext.getResponse();
response.setContentType("text/html");
PrintWriter printWriter = null;
try {
printWriter = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
StringBuffer _bf = new StringBuffer();
_bf.append(out_str);
printWriter.write(_bf.toString());
printWriter.flush();
printWriter.close();
}
您的内容可能会动态变化,使用请求调度器没有问题。作为初学者,你需要遵循的东西
在控制器中编写代码逻辑,这也被认为是不好的做法,因为需要将其与服务类分开。
在请求或会话范围中设置所需的值
使用RequestDispatcher或pageRedirect从控制器访问视图\
使用EL或JSTL打印请求中的对象
从互联网上的大量参考资料开始
希望这有帮助 这给了我一个语法错误,无法解析符号agenmunexpected token near为什么需要那个out string变量?检查这里的语法如果你没有,这应该是有效的。。将html放入控制器是一种糟糕的做法。我建议您根据具体情况更改jsp名称,并将其包含在RequestDispatcher中。如果你能给我一些关于如何做的建议,我将不胜感激。首先,使用JSP是一种糟糕的做法,而你无法搜索现有的答案是你的根本问题。