[接6楼] 当然,有更好的处理方法。 建议用实体类的对象作为ActionForm的成员,这样可以消除重复代码,使用起来还非常方便。以用户登录及注册模块为例,你之前肯定已经建好一个实体类,假如叫 User public class User implements java.io.Serializable { private String userName; private String password; private int age; //getters & setters}则你的ActionForm可以这样写: public class UserForm extends ActionForm { private User user = new User();//记得一定要初始化! //getters & setters //other methods } 这个ActionForm可同时用于注册和登录,很方便的。呵呵。
Struts动态ActionForm
两个界面
一个是登录
有用户名,和密码,建了个动态的LoginForm
另一个界面注册
有用户名,密码,年龄把年龄,是加到动态的LoginForm
还是重建一个动态的RegistForm
大哥 请教,不懂!!!!! 还有就是谁能加我的QQ号535215232
没事可也多聊聊,加了好多群,都没人说话
小弟在这里拜谢了,大哥!!!
我以后还有靠java吃饭!!!
希望懂ssh
我不会一直问问题的,只是有些弄不清楚!
大哥!!!!!!!!!!!!!!!!
我先明确一下楼主的意思:
登录和注册两个功能都要用到用户信息,注册时多了一个年龄,如何处理?接下来是答案:
很简单啊,你不需要多建ActionForm了,就用同一个ActionForm,让它有用户名,密码,年龄。这样,既可以登录,又可以注册。ActionForm是可以重用的啊,方便吧?呵呵。
当然,有更好的处理方法。
建议用实体类的对象作为ActionForm的成员,这样可以消除重复代码,使用起来还非常方便。以用户登录及注册模块为例,你之前肯定已经建好一个实体类,假如叫 User
public class User implements java.io.Serializable
{
private String userName;
private String password;
private int age; //getters & setters}则你的ActionForm可以这样写:
public class UserForm extends ActionForm
{
private User user = new User();//记得一定要初始化! //getters & setters //other methods
}
这个ActionForm可同时用于注册和登录,很方便的。呵呵。
struts-config.xlm文件
<form-bean name="userForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="user" type="com.eHome.entity.UserTO" />
</form-bean>regist.jsp文件<html:form action="/regist.do?op=regist" method="post">
用户名: <html:text property="userName"> </html:text>
年龄: <html:text property="userAge"> </html:text>
地址: <html:text property="userAddress"> </html:text>
<html:submit value="注册"> </html:submit>
</html:form>
这样写怎么实现,
我这样写,那错了,
如果你的formbean这样写
你怎么实现啊
用户名: <html:text property="user.userName"> </html:text>
年龄: <html:text property="user.userAge"> </html:text>
地址: <html:text property="user.userAddress"> </html:text>
<html:submit value="注册"> </html:submit>
</html:form>
public class RegistAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{ System.out.println( "[LoginAction] begin execute ." );
DynaActionForm lf=(DynaActionForm)form;
String userName=(String)lf.get("userName");
String password=(String)lf.get("password");
System.out.println(userName); if(userName.equals("dd")&&password.equals("123")){
ActionForward f=mapping.findForward("ok");
return f;
}else{
ActionForward f=mapping.findForward("error");
return f;
} }
}
<form-bean name="registDyForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="userName" type="java.lang.String"> </form-property>
<form-property name="password" type="java.lang.String"> </form-property>
</form-bean>
<action path="/regist"
type="basic.RegistAction"
name="registDyForm"
>
<forward name="ok" path="/day1/ok.jsp" />
</action>
jsp不用改登陆名dd密码123