Java 我的Freemarker无法将对象传递给模板
我正在学习Freemarker framwork,我有一个问题。 我可以将自定义对象传递给模板文件吗?我看到这些帖子,他们照我说的做了,但这对我不起作用 我知道春天可以帮助我,但我想尝试没有它 我的代码是: Servlet:Java 我的Freemarker无法将对象传递给模板,java,spring,jakarta-ee,tomcat,freemarker,Java,Spring,Jakarta Ee,Tomcat,Freemarker,我正在学习Freemarker framwork,我有一个问题。 我可以将自定义对象传递给模板文件吗?我看到这些帖子,他们照我说的做了,但这对我不起作用 我知道春天可以帮助我,但我想尝试没有它 我的代码是: Servlet: public class servletTest extends HttpServlet { /** * @see Servlet#init(ServletConfig) */ public void init(ServletConfig servConfig)
public class servletTest extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig servConfig) throws ServletException {
// TODO Auto-generated method stub
try {
cfg = config.getConfig();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* Questa chiamata permette di chiamare il file di configurazione per il
* template
*/
private Configuration cfg;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
SimpleHash root = new SimpleHash();
// expose a "simple" java objects:
root.put("theString", "wombat");
// expose an "arbitrary" java objects:
root.put("theObject", new banquet( "Thinking In Java") );
/* Get the template */
Template template = cfg.getTemplate("banquetsList.ftl");
Writer out_template = new StringWriter();
try {
template.process( root, out_template );
} catch (TemplateException e) {
e.printStackTrace();
}
out.write( out_template.toString() );
}
}
配置文件:
private static void build_config() throws IOException{
cfg = new Configuration();
cfg.setServletContextForTemplateLoading( R.context.get_servletContext(), R.path.get_TEMPLATE() );
DefaultObjectWrapper ObjectWrapper = new DefaultObjectWrapper();
cfg.setObjectWrapper( ObjectWrapper.DEFAULT_WRAPPER );
cfg.setDefaultEncoding("UTF-8");
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
cfg.setIncompatibleImprovements(new Version(2, 3, 20));
}
宴会类:
class banquet{
banquet( /*int code,*/ String title){
//this.code = code;
this.title = title;
}
public String title;
//public int code;
}
模板文件:
<html>
<body>
<h1>
lista di banchetti
</h1>
<div>
</div>
<div>
${theObject.name}
</div>
</body>
班切蒂酒店
${theObject.name}
我搞错了还是Freemarker有bug?是的,我是noob,但这个问题开我玩笑
事先谢谢大家:)
解决方案
我找到了解决办法!
我已经将PUBLIC添加到了宴会bean中,我使用了setter和getter方法,谢谢大家:)