【发布时间】:2014-11-14 04:39:42
【问题描述】:
我想同时实现这两件事。
我在 Struts2 中有一个常规的 jsp 页面。 xx/yy/zz/email.jsp
<html>
<head>
</head>
<body>
<s:property value="email"/>
</body>
</html>
这个页面的url可以是xx/yy/zz/myEmail.action,而一些action类会处理它...
public class MyEmailAction {
private String email;
public String execute(){
this.email = 'abc@xyz.com''
}
//setter and getter for 'email'
......
}
现在,我想做另一个动作,将 xx/yy/zz/myEmail.action 页面的结果作为电子邮件发送。
public class MyEmailAction {
private String email;
public String execute(){
this.email = 'abc@xyz.com''
}
public String send() {
this.email = 'abc@xyz.com''
Map mapping;
//put this.email into the mapping
String result = getResultOfJSP('../../../xx/yy/zz/email.jsp', mapping);
Email.send('me@me.com', 'you@you.com', 'My Subject', result);
}
//setter and getter for 'email'
......
}
所以问题是:如何将渲染的 JSP 的结果作为字符串获取?
我想要这个的原因显然是我想在一个地方管理这个模板(email.jsp)。
我知道我可以使用另一个速度 (vm) 页面,它与 jsp 具有完全相同的 html,但使用速度标记。但是每当我需要对这个模板进行更改时,我都必须在两个地方都这样做。
我想我也可以使用 URL 来获取结果,但我不喜欢使用这种方式,因为它是对服务器的另一个请求。
谢谢
【问题讨论】:
标签: java html jsp struts2 velocity