注册 登录
编程论坛 J2EE论坛

请教一个关于tapestry的开发问题

zhangshubin 发布于 2007-06-01 16:38, 2599 次点击
请问这个是什么异常

Foreach组件代码如下:
<component id="meetListLoop" type="Foreach">
<binding name="source" value="meetList"/>
<binding name="value" value="meet"/>
<binding name="element" value="literal:tr"/>
</component>

meetList获取方法如下:

public List getMeetList(){
return MeetList.getMeetList(this.getMyVisit().getUsername());
}

html代码如下:
<tr jwcid="meetListLoop" align="center">
<td height="30"><a href="#" jwcid="meetContentLink">查看</a></td>
<td height="30"><span jwcid="meetTime1">会议时间</span></td>
<td height="30"><span jwcid="meetTitle1">会议标题</span></td>
</tr>

这个异常是什么意思,谢谢各位高手了
只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2007-6-1 16:45:49编辑过]

21 回复
#2
支离破碎2007-06-01 17:37
异常在哪?
#3
zhangshubin2007-06-01 17:43
meetList这一行,黄色标记的那行
#4
支离破碎2007-06-01 17:45
。。。没的啊,看不到。。。。
#5
zhangshubin2007-06-01 17:48
下面的图片点击放大看就能看清了,Foreach组件的source那一行
#6
支离破碎2007-06-01 17:50
大哥,你下面的图片是论坛的LOGO。
#7
zhangshubin2007-06-01 17:51
没有jpg图片?
#8
zhangshubin2007-06-01 17:53

org.apache.tapestry.BindingException

Unable to read OGNL expression '<parsed OGNL expression>' of $BasePage_8@9b777a[Summary]: $BasePage_8.meetList

binding: ExpressionBinding[Summary meetList]

location: context:/WEB-INF/Summary.page, line 71

66 <component id="appendSubmit" type="Submit">
67 <binding name="listener" value="listener:appendSubmit"/>
68 </component>
69
70 <component id="meetListLoop" type="Foreach">
71 <binding name="source" value="meetList"/>
72 <binding name="value" value="meet"/>
73 <binding name="element" value="literal:tr"/>
74 </component>
75
76 <component id="meetContentLink" type="DirectLink">


这个就是异常全部说明了,在71行
#9
zhangshubin2007-06-01 17:56
知道是什么异常了么,谢谢
#10
支离破碎2007-06-01 18:05
tapestry是多少版本的,3.0里面有FOREACH组件,不过好像4.0以上就没的了改成FOR。(因为这个组件有不少问题)
#11
zhangshubin2007-06-01 18:05

用的4.0版本,改成For组件也是一样的问题,meetList绑定有异常

#12
支离破碎2007-06-01 18:15

public List getMeetList(){
return MeetList.getMeetList(this.getMyVisit().getUsername());
}
好像写的有问题,如果你邦定的是meetList

红色的写的好像有问题。


你应该定义:
private Lists meetList;
public List getMeetList(){
...do something
return 一个LIST对象.

}

#13
zhangshubin2007-06-01 18:17
哦,我的meetList的list对象是在另外一个地方实现的

写在这里的:
public class MeetList{
public static List<Tmeet> tmeetList = null;

public static Configuration config = new Configuration().configure();
public static Session session = config.buildSessionFactory().openSession();
static Criteria criterria = session.createCriteria(Tmeet.class);
static Tmeet tmeet = new Tmeet();

public static List getMeetList(String ID){
if(tmeetList == null){
tmeetList = new ArrayList<Tmeet>();
tmeet.setId(ID);
criterria.add(Example.create(tmeet));
criterria.addOrder(Order.desc("meetTime"));
List list = criterria.list();
for(int i=0;i<list.size();i++){
tmeetList.add((Tmeet)list.get(i));
}
}

return tmeetList;
}

}
#14
zhangshubin2007-06-01 18:18
先试试你說的,改一下看可不可以
#15
支离破碎2007-06-01 18:23
public List getMeetList(){
这里面只要返回一个LIST就可以了。
}

名字要一致应该不会有错的。。。
#16
zhangshubin2007-06-01 18:23
还是不行
#17
zhangshubin2007-06-01 18:23
改成小写?
#18
支离破碎2007-06-01 18:32
要遵守javabean的set/get的写法啊。如果你的source="meetList"

那就写成getMeetlist
#19
支离破碎2007-06-01 18:43
如果还搞不定你就只有看T4的例子里面的例子了,(我只用过TAPESTRY3.0而且还是一年前的事了,好多都忘了,也不知道T4改了些什么东西,只能帮你这么多了)
#20
zhangshubin2007-06-01 19:42
好的,谢谢哈
#21
neu_li2008-01-10 15:27
不要用 Foreach,用 For, 而且你要分清循环的内容到底是什么,下面的代码你试一下
<property name="meet"/>
<component id="meetListLoop" type="For">
<binding name="source" value="meetList"/>
<binding name="value" value="meet"/>
<binding name="element" value="literal:tr"/>
</component>

meetList获取方法如下:

public List getMeetList(){
return MeetList.getMeetList(this.getMyVisit().getUsername());
}

html代码如下:
<tr jwcid="meetListLoop" align="center">
<td height="30"><a href="#" jwcid="meet.meetContentLink">查看</a></td>
<td height="30"><span jwcid="meet.meetTime1">会议时间</span></td>
<td height="30"><span jwcid="meet.meetTitle1">会议标题</span></td>
</tr>
#22
xtzl1302008-01-10 16:34
学英语,学看异常和错误报告
1