我正在將一個專案從傳統的spring遷移到springboot。專案使用 Spring Webflow,并計劃保持 Webflow 的配置不變,通過更新專案結構和添加必要的啟動庫將專案移植到 springboot。
目前,內嵌的 tomcat jasper庫出現了一個jasperexception,抱怨在TLD的方法簽名中使用的函式類沒有找到。
org.apache.jasper.JasperException。在TLD中為函式[mytld:getAppLink]的方法簽名中指定的[javax.servlet.http.HttpServletRequest request]類無法找到。[javax.servlet.http.HttpServletRequest request]。 at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55) ~[tomcat-embed-jasper-9.0.36.jar! /:9.0.36] at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:294) ~[tomcat-embed-jasper-9.0.36.jar! /:9.0.36] at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:81) ~[tomcat-embed-jasper-9.0.36.jar! /:9.0.36]
如果我將 TLD 中的函式更新為無引數函式,在這一點上作業得很好。但是當我在建構式中傳遞一個類的時候,這個錯誤就被拋出了。
JSP:
<%@ include file="/WEB-INF/jsp/includes/includes.jspf"/span> %>
<%@ taglib prefix="mytld"/span> uri="MyTldLibrary"/span> %>
< div id="header" class="style-header">
<div id="headm">
<a href="${mytld:getAppLink(pageContext. request)}" class="logos"></a>
</div>/span>
</div>/span>
這里是我的tld的片段:
<?xml version="1.0" encoding="UTF-8" ? >
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"/span>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"。
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_2.xsd"
version="2.0"/span>>
<tlib-version>2.2</tlib-version>
<jsp-version>3.0</jsp-version>
<short-name>mytld</short-name>
<uri>MyTldLibrary</uri>
<description>App EL Functions</description>
<function>/span>
<name>getAppLink</name>/span>
<function-class>/span>
com.app.web.tags.AppWebFunctions
</function-class> com.app.web.tags.AppWebFunctions
<function-signature>/span>
java.lang.String getAppLink(javax.servlet.http.HttpServletRequest request)
</function-signature>
</function>/span>
</taglib>/span>
這里是AppWebFunctions類中getAppLink的函式片段:
/**。
* 獲取應用程式的鏈接。
*
* @param request 請求。
* @return 應用程式鏈接。
* @throws UnsupportedEncodingException 不支持的編碼例外。
*/
public static final String getAppLink(final HttpServletRequest request) throws UnsupportedEncodingException {
//LOGIC以檢索applink。
return appLink。
}
uj5u.com熱心網友回復:
如果我將TLD中的函式更新為無引數函式,在這一點上它作業得很好。但是當我在建構式中傳遞一個類的時候,這個錯誤就被拋出了。
這是因為 <function-signature> 不包括任何引數名稱,只有引數型別的完全合格的類名可以被指定。
因此,只要洗掉request引數名,TLD就可以作業了。
<function-signature>
java.lang.String getAppLink(javax.servlet.http.HttpServletRequest)
</function-signature>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/315166.html
標籤:
上一篇:jsp轉換JsonArray元素
下一篇:如何使用彈性搜索在查詢中搜索術語
