2012-10-06 4 views
1

Я использую выражение в Java MVC
<p>${i}</p>
Я определить метод
Expression MVC2

public static String test(int i) { 
    // 
} 

Я не могу назвать метод test в выражении ${test(i)} Как это исправить?

ответ

1

Способ сделать это, чтобы создать пользовательский taglib и создать язык выражений.

Таким образом, вы должны определить TLD в папку WEB-INF (например /WEB-INF/my-functions.tld) ​​

Этот файл является XML и выглядеть:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" 
    version="2.0"> 
    <tlib-version>1.0</tlib-version> 
    <uri>http://www.your-domain.com/taglib</uri> 
    <short-name>my-functions</short-name> 
    <description>Whatever</description> 
    <function> 
     <name>writeHello</name> 
     <function-class>your.package.YourClass</function-class> 
     <function-signature>java.lang.String writeHello(java.lang.String)</function-signature> 
    </function> 
</taglib> 

с помощью следующего кода Java:

package your.package; 

public class YourClass { 

    public static String writeHello(String name) { 
     return "Hello " + name; 
    } 

} 

И в вашем JSP вы не можете сделать что-то подобное:

<%@ taglib prefix="my" uri="/WEB-INF/my-functions.tld" %> 
... 
${my:writeHello('toto')} 

будет отображать «Hello toto» на вашей странице

+0

Okie, thanks @Patouche! –