2013-10-08 44 views
2

我有一个名为jspString一个String属性的动作类。我使用属性jspString为此操作类的最终JSP创建内容。我已经包含了我的操作类和生成的JSP代码。我的问题是,当我尝试包括JSP页面,使用jsp:include标签,不渲染页面的结果页面的内容。的Struts 2 - JSP:渲染String作为JSP

Action类:

public class HomeAction extends ActionSupport 
{ 
    private String jspString = ""; 
    public String execute() 
    { 
      jspString += "<div>"; 
      jspString += "<p>"; 
      jspString += "<jsp:include page=\"check.jsp\">";         
      jspString += "</p>"; 
      jspString += "</div>"; 
      return "success"; 
    } 
    public String getJspString() 
    { 
     return jspString; 
    } 

    public void setJspString(String jspString) 
    { 
     this.jspString = jspString; 
    } 
} 

得到的JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@ taglib uri="/struts-tags" prefix="s" %> 
<html> 
<body> 
<s:property escapeHtml="false" value="jspString"/> 
</body> 
</html> 

现在div,创建p标签。但jsp:include不起作用。它不会在结果页面中显示check.jsp的内容。

+0

你在哪里,包括你的JSP?我无法在您的代码中看到它,以及您如何包含它? –

+0

检查您的“check.jsp”路径和您所做的请求路径。由于已经向服务器发出了请求,所以映射将根据此请求进行更改,因此“check.jsp”将不在该目录中。它在错误的目录中搜索它。 –

回答

1

使用​​标签,它允许在服务器上执行的动作,并在标签的身体返回JSP。

<s:action name="home"/> 
+0

+1行动标签,虽然不知道是什么OP要exactly.though我们可以使用'executeResult' –

+0

感谢ü所有乌拉圭回合的答复。其实我正在动态地创建jsp页面。我试着改变“check.jsp”的路径。但是jsp:include没有发生。 – Kalidha

+0

罗马u能请告诉我疫情周报使用这个? – Kalidha