[Tapestry4] tapestry4.1.5 Border组件报错,帮忙看看

liuj1983 2009-12-30
在调试水果店例子的时候  定义了一个border组件  加到登录界面以后就报错

Border.html

<html jwcid="shell">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>水果列表</title>
</head>
<body jwcid="@Body">
<span jwcid="@If" condition="ognl:page.visit.username!=null">
欢迎:<font color="red"><span jwcid="@Insert" value="ognl:page.visit.username">用户名</span></font>
</span>
<span jwcid="@RenderBody"/>
<span jwcid="@If" condition="ognl:page.visit.username!=null">
<a href="#" jwcid="restart">注销</a>
</span>
</body>
</html>


Border.jwc


<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE component-specification PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">

<component-specification class="com.tapestry4.page.Border" allow-informal-parameters="no">

<inject property="myVisit" type="state" object="visit"/>
    <component id="shell" type="Shell">
        <binding name="title" value="title"/>
        <binding name="stylesheet" value="asset:stylesheet"/>
    </component>
   
    <asset name="stylesheet" path="css/style.css"/>
   
    <component id="restart" type="ServiceLink">
    <binding name="service" value="ognl:@org.apache.tapestry.Tapestry@RESTART_SERVICE"/>
  </component>
</component-specification>



登录页面加了

<span jwcid="@Border">组件以后
就显示组件的<span jwcid="@If" condition="ognl:page.visit.username!=null">
这一行有错


异常如下

org.apache.tapestry.BindingException


ognl.NoSuchPropertyException



ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:151)
ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2210)
ognl.ASTProperty.getValueBody(ASTProperty.java:114)
ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
ognl.SimpleNode.getValue(SimpleNode.java:258)
ognl.ASTChain.getValueBody(ASTChain.java:138)
ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
ognl.SimpleNode.getValue(SimpleNode.java:258)
ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)
ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
ognl.SimpleNode.getValue(SimpleNode.java:258)
ognl.Ognl.getValue(Ognl.java:494)
ognl.Ognl.getValue(Ognl.java:458)
org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.readCompiled(ExpressionEvaluatorImpl.java:123)
$ExpressionEvaluator_125dd87f47b.readCompiled($ExpressionEvaluator_125dd87f47b.java)
org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:141)
org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125)
org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
org.apache.tapestry.enhance.EnhanceUtils.toBoolean(EnhanceUtils.java:173)
$IfBean_7.getCondition($IfBean_7.java)
org.apache.tapestry.components.IfBean.evaluateCondition(IfBean.java:128)
org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:66)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:538)
org.apache.tapestry.html.Body.renderComponent(Body.java:38)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:538)
org.apache.tapestry.html.Shell.renderComponent(Shell.java:125)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:185)
org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:249)
org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:400)
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:159)
org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33)
$ResponseRenderer_125dd87f364.renderResponse($ResponseRenderer_125dd87f364.java)
$ResponseRenderer_125dd87f363.renderResponse($ResponseRenderer_125dd87f363.java)
org.apache.tapestry.engine.HomeService.service(HomeService.java:68)
$IEngineService_125dd87f3d2.service($IEngineService_125dd87f3d2.java)
org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(EngineServiceInnerProxy.java:77)
org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:241)
org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
$WebRequestServicer_125dd87f3a2.service($WebRequestServicer_125dd87f3a2.java)
$WebRequestServicer_125dd87f3a1.service($WebRequestServicer_125dd87f3a1.java)
$WebRequestServicer_125dd87f39e.service($WebRequestServicer_125dd87f39e.java)
$WebRequestServicer_125dd87f39d.service($WebRequestServicer_125dd87f39d.java)
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
$ServletRequestServicer_125dd87f390.service($ServletRequestServicer_125dd87f390.java)
$ServletRequestServicer_125dd87f38f.service($ServletRequestServicer_125dd87f38f.java)
org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
$ServletRequestServicerFilter_125dd87f38c.service($ServletRequestServicerFilter_125dd87f38c.java)
$ServletRequestServicerFilter_125dd87f38b.service($ServletRequestServicerFilter_125dd87f38b.java)
$ServletRequestServicer_125dd87f391.service($ServletRequestServicer_125dd87f391.java)
org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
$ServletRequestServicerFilter_125dd87f38a.service($ServletRequestServicerFilter_125dd87f38a.java)
$ServletRequestServicerFilter_125dd87f389.service($ServletRequestServicerFilter_125dd87f389.java)
$ServletRequestServicer_125dd87f391.service($ServletRequestServicer_125dd87f391.java)
org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
$ServletRequestServicerFilter_125dd87f38e.service($ServletRequestServicerFilter_125dd87f38e.java)
$ServletRequestServicerFilter_125dd87f38d.service($ServletRequestServicerFilter_125dd87f38d.java)
$ServletRequestServicer_125dd87f391.service($ServletRequestServicer_125dd87f391.java)
$ServletRequestServicer_125dd87f384.service($ServletRequestServicer_125dd87f384.java)
$ServletRequestServicer_125dd87f383.service($ServletRequestServicer_125dd87f383.java)
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:126)
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:103)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
java.lang.Thread.run(Thread.java:595)



谁看看 给指导下呢

liuj1983 2009-12-31
有人沒 给帮忙看看呢
fantify 2009-12-31
猜想下:username大小写有没有可能出错了?
liuj1983 2009-12-31
package com.tapestry4.engine;

import java.util.List;

public class MyVisit {

private String username;

private List fruitCartList;

public List getFruitCartList() {
return fruitCartList;
}

public void setFruitCartList(List fruitCartList) {
this.fruitCartList = fruitCartList;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

}

这个是 visit类  大小写应该没有错吧
liuj1983 2010-01-03
谁看出来是撒错误 给个指导


根据官方 配置seesion级的状态的 那个

<contribution configuration-id="tapestry.state.ApplicationObjects">  
  <state-object name="visit" scope="session">  
    <create-instance class="com.tapestry4.engine.MyVisit"/>  
  </state-object>    
</contribution> 

配了还是不行
hongdengdao 2010-01-03
去掉page.就行了
hongdengdao 2010-01-03
错了,你home页面也要加这个visit property阿
hongdengdao 2010-01-03
我又回答错了
你要在border.java里面加上 @InjectState("visit")
public abstract MyVisit visit ;

记得加上tapestry annotation这个包。
liuj1983 2010-01-04
hongdengdao 写道
错了,你home页面也要加这个visit property阿

什么意思 你是说在home.page里面加 这行

<inject property="myVisit" type="state" object="visit"/>  还是撒意思  这个我是加了的

liuj1983 2010-01-04
hongdengdao 写道
我又回答错了
你要在border.java里面加上 @InjectState("visit")
public abstract MyVisit visit ;

记得加上tapestry annotation这个包。



package com.tapestry4.page;

import org.apache.tapestry.BaseComponent;

public abstract class Border extends BaseComponent {

public String getTitle() {
return "Tapestry深入浅出-水果商店【"
+ this.getMessages().getMessage(this.getPage().getPageName())
+ "】";
}

}



我的 border组件类 你说的 加注释是加哪儿
Global site tag (gtag.js) - Google Analytics