关于Velocity访问javabean传参问题,求教!!!
ToyTool.java 类
public class ToyTool { private String message = "Hello from ToyTool!"; public String getMessage() { System.out.println("==========================================="); return message; } public void setMessage(String m) { message = m; } public void report(HttpServletRequest req){ System.out.println("========================="); System.out.println("===:"+req.getRequestURI()); } public void reqs(String value){ System.out.println("=====调用成功了===="+value); } /** To test exception handling in templates. */ public boolean whine() { throw new IllegalArgumentException(); } }tools.xml 文件配置
<tools> <data type="boolean" key="xhtml" value="true"/> <data type="boolean" key="isSimple" value="true"/> <data type="number" key="version" value="2.0"/> <data key="foo">this is foo</data> <data key="bar">this is bar.</data> <toolbox scope="request"> <tool class="org.apache.velocity.tools.view.ViewContextTool"/> <tool class="org.apache.velocity.tools.generic.ResourceTool"/> <tool key="toytool" class="com.sps2h.view.ToyTool"/> </toolbox> <toolbox scope="session" locale="en_US"> <tool class="org.apache.velocity.tools.view.BrowserTool" languagesFilter="en"/> </toolbox> <toolbox scope="application"> <tool key="math" class="org.apache.velocity.tools.generic.MathTool"></tool> <tool key="date" class="org.apache.velocity.tools.generic.DateTool"></tool> </toolbox> </tools>index.vm模板文件
<html> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <body> <br /> request value :$request.get("parameters").get("test") <br /> $toytool.report($request) ##这个函数就调用不到 $toytool.reqs("===SUCCESS==") ##这个就可以正常调用 <br /> </body> </html>
$toytool.report($request) ##这个函数就调用不到
信息: Velocity [debug] Null reference [template '/index.vm', line 7, column 1] : $toytool.report($request) cannot be resolved.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这样可以调用,但是System.out.println("===:"+req);
System.out.println("===:"+req);结果是null $toytool.report(${request}) 这样调用不了的原因就是${request}作参数这样传的时候就null。 我在.vm上面输出${request}都是有值的!
呵呵 可以调用,但是不能这样用,有问题
改成这样试试呐?(没用过,猜滴)
public void report(Object req)