使用 Scriptlet 变量调用 EL 函数
Call an EL function with a Scriptlet variable
我似乎遇到了一个奇怪的问题,我无法将 Scriptlet 变量传递给 EL 函数调用。它将全部 运行 正确但它发送一个空值而不是我在 jsp 中设置的值...我觉得我在这里遗漏了一些非常基本的东西。
<!DOCTYPE html>
<html>
<head>
<%@ Sudo / All other tag's required.... %>
<%@ taglib prefix="fn_" uri="/WEB-INF/tags.tld" %>
<script>
<% LinkedList<MyBean> mb = (LinkedList<MyBean>)request.getAttribute("mBean"); %>
<% String f="first"; %>
</script>
</head>
<td>${fn_:getMyBean(mb,f)}</td>
<?xml version="1.0" encoding="UTF-8"?>
<taglib
xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.1">
<tlib-version>1.1.2</tlib-version>
<uri>http://some.thing/mine</uri>
<function>
<name>getMyBean</name>
<function-class>com.glass.MyBean</function-class>
<function-signature>java.lang.String getMyBean(java.util.List, java.lang.String)</function-signature>
</function>
</taglib>
package com.glass;
import java.util.LinkedList;
import java.util.List;
public class MyBean{
public static String getMyBean( List<MyBean>cb, String st) {
return "Hit! "+ st;
}
输出将给出:
Hit!
而不是return字符串值。当我 运行 调试器时,我可以看到字符串值为空。如果我只是尝试获取字符串值,我还在下面进行了测试:<%=f%>
它确实正确地显示了值。
如何在 EL 函数调用中正确使用字符串值?
设置f
的值如下:
<c:set var="f" scope="request" value="first"/>
然后按如下方式使用:
${fn_:getMyBean(mb,f)}
我似乎遇到了一个奇怪的问题,我无法将 Scriptlet 变量传递给 EL 函数调用。它将全部 运行 正确但它发送一个空值而不是我在 jsp 中设置的值...我觉得我在这里遗漏了一些非常基本的东西。
<!DOCTYPE html>
<html>
<head>
<%@ Sudo / All other tag's required.... %>
<%@ taglib prefix="fn_" uri="/WEB-INF/tags.tld" %>
<script>
<% LinkedList<MyBean> mb = (LinkedList<MyBean>)request.getAttribute("mBean"); %>
<% String f="first"; %>
</script>
</head>
<td>${fn_:getMyBean(mb,f)}</td>
<?xml version="1.0" encoding="UTF-8"?>
<taglib
xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.1">
<tlib-version>1.1.2</tlib-version>
<uri>http://some.thing/mine</uri>
<function>
<name>getMyBean</name>
<function-class>com.glass.MyBean</function-class>
<function-signature>java.lang.String getMyBean(java.util.List, java.lang.String)</function-signature>
</function>
</taglib>
package com.glass;
import java.util.LinkedList;
import java.util.List;
public class MyBean{
public static String getMyBean( List<MyBean>cb, String st) {
return "Hit! "+ st;
}
输出将给出:
Hit!
而不是return字符串值。当我 运行 调试器时,我可以看到字符串值为空。如果我只是尝试获取字符串值,我还在下面进行了测试:<%=f%>
它确实正确地显示了值。
如何在 EL 函数调用中正确使用字符串值?
设置f
的值如下:
<c:set var="f" scope="request" value="first"/>
然后按如下方式使用:
${fn_:getMyBean(mb,f)}