本文介紹了我的攔截器沒有將值從操作頁面提取到Struts2中的FTL的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我找不到為什么我的FTL無法從操作頁提取值的問題。
這是我的FTL代碼:
<html>
<head></head>
<body>
<#assign temp = 12311>
<h4>hello world : ${FirstAction?if_exists.random} #{temp}</h4>
</body>
</html>
這是我的struts.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation"
value="true" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<action name="getTutorial" class="MyActions.FirstAction" >
<result name="success">/success.jsp</result>
<result name="failure">/error.jsp</result>
</action>
<action name="submit" class="MyActions.FirstAction" method="submit"></action>
<action name="callme" class="MyActions.FirstAction" method="myMethod">
<result name="success">/FreeMarkerPages/testingAction.jsp</result>
<result name="failure" type="freemarker">/FreeMarkerPages/FirstFTL.ftl</result>
</action>
</package>
</struts>
這是我的操作類:
package MyActions;
import java.util.Random;
import com.opensymphony.xwork2.ActionSupport;
import service.ColorPicker;
public class FirstAction extends ActionSupport{
private int random;
public String execute() {
return "failure";
}
public String myMethod(){
setRandom(9999);
System.out.println("My method "+random);
return "failure";
}
public String submit(){
System.out.println(random);
return null;
}
public int getRandom() {
return random;
}
public void setRandom(int random) {
this.random = random;
}
這是我的FTL錯誤:
FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!)
The following has evaluated to null or missing:
==> FirstAction?if_exists.random [in template "FreeMarkerPages/FirstFTL.ftl" at line 5, column 22]
推薦答案
愚蠢的錯誤。我應該寫${random?if_exists}
,而不是寫${FirstAction?if_exists.random}
。
這不是靜態類。
這篇關于我的攔截器沒有將值從操作頁面提取到Struts2中的FTL的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,