浏览 4200 次
锁定老帖子 主题:请教Tapestry中Form提交问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-11-08
1.首先,在开发指南中,看示例哪个Visit应是自己写的一个JAVABEAN啊,好像并不是Tapestry自身的组件啊,我传的其它Bean,改成对应的结果出错啊 2.如果我用实例化一个Bean再付值,在下一页什么得不到啊 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-11-08
Visit
tapestry会自动创建的 用的时候获取一下 Visit v = (Visit)this.getVisit(); |
|
返回顶楼 | |
发表时间:2005-11-08
为什么我用 Visit v = (Visit)this.getVisit();
会出错,基本的JAVA就不对啊 org.apache.tapestry.ApplicationRuntimeException Unable to invoke method login on com.mytest.Login$Enhance_0@ad6513[Login]: null java.lang.reflect.InvocationTargetException java.lang.Error Unresolved compilation problems: Visit cannot be resolved to a type Visit cannot be resolved to a type Stack Trace: Visit cannot be resolved to a type Visit cannot be resolved to a type |
|
返回顶楼 | |
发表时间:2005-11-08
Visit 是你定义的类的名称
|
|
返回顶楼 | |
发表时间:2005-11-08
我是这样的,请教到底哪里错了?谢谢你了!!!
Userinfo.java /** * */ package com.mytest.povo; import java.io.Serializable; /** * @author user * */ public class Userinfo implements Serializable { private String username; private String password; private Integer id; public void setUsername(String name){ this.username=name; } public String getUsername(){ return username; } public void setPassword(String pass){ this.password=pass; } public String getPassword(){ return password; } public void setId(Integer id){ this.id=id; } public Integer getId(){ return id; } } *******Login.java public abstract class Login extends BasePage { public abstract String getUsername(); public abstract void setUsername(String name); public abstract String getPassword(); public abstract void setPassword(String pass); public void login(IRequestCycle cycle) { Userinfo userinfo =(Userinfo) getPage().getVisit(); userinfo.setUsername(this.getUsername()); userinfo.setPassword(this.getPassword()); System.out.println("---------"+userinfo.getUsername()); System.out.println("----------"+this.getUsername()); cycle.activate("Main"); } } ********Login.page中 <property-specification name="username" type="java.lang.String"/> <property-specification name="password" type="java.lang.String"/> ********Login.html中 <form jwcid="@Form" listener="ognl:listeners.login"> <table cellpadding="4"> <tr><td>Username:</td><td><input jwcid="@TextField" value="ognl:username" size="12"/></td> </tr> <tr><td>Password:</td><td><input jwcid="@TextField" value="ognl:password" hidden="ognl:true" size="12"/></td> </tr> <tr align="right"> <td colspan="2"><input type="submit" value="Login"/></td> </tr> </table> </form> ------Main.java /** * */ package com.mytest; import org.apache.tapestry.BaseComponent; import org.apache.tapestry.IExternalPage; import org.apache.tapestry.event.PageEvent; import org.apache.tapestry.event.PageRenderListener; import org.apache.tapestry.html.BasePage; import com.mytest.povo.Userinfo; /** * @author user * */ public abstract class Main extends BaseComponent implements PageRenderListener{ private String username,password; public void pageBeginRender(PageEvent event){ Userinfo userinfo =(Userinfo) getPage().getVisit(); this.SetUsername(userinfo.getUsername()); this.setPassword(userinfo.getPassword()); } public void SetUsername(String name){ this.username=name; } public void setPassword(String pass){ this.password=pass; } public String getUsername(){ return username; } public String getPassword(){ return password; } } ------Main.page <property-specification name="userinfo" type="java.lang.String"/> <property-specification name="password" type="java.lang.String"/> ------Main.html <table cellpadding="4"> <tr><td>Username:</td><td><span jwcid="@Insert" value="ognl:username" size="12"/></td> </tr> <tr><td>Password:</td><td><span jwcid="@Insert" value="ognl:password" hidden="ognl:true" size="12"/></td> </tr> </table> *************************************** 但是我这样就可以正确提交,为什么呀,我都看了很多遍,跟哪个例子没什么差别啊,但就是出错,想不明白 public void login(IRequestCycle cycle) { Main main=(Main) cycle.getPage("Main"); main.setUsername(this.getUsername()); main.setPassword(this.getPassword()); cycle.activate(main); return; } 其它文件都是一样 |
|
返回顶楼 | |
发表时间:2005-11-09
需要在*.application中指定Visit单元的地址。
<property name="org.apache.tapestry.visit-class" value="visit单元地址"/> <property name="org.apache.tapestry.global-class" value="Global单元地址"/> 请先查看tapestry自带帮助。 |
|
返回顶楼 | |