本人开发一论坛系统,为减少代码量,想把所有关于一张表的操作放在一个DynaAction中.form使用可重用的DynaActionForm.但开发过程一点都不顺利,不知道错在哪里了.请教高人.还有一个DynaAction有多个jsp页面的action指向,在struts-config.xml文件中如何配置.
jsp中
<form id="form1" name="form1" method="post"
action="user.do?method=login">
<div align="center">
<label>
用户名
<input type="text" name="username">
</label>
<label for="textfield">
密码
</label>
<input type="password" name="password" id="textfield">
<br>
</div>
<div align="center">
<input type="submit" name="Submit" value="提交" id="Submit">
<a href="register.jsp">注册</a>
</div>
</form>
userAction:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;
import com.yourcompany.struts.form.UserForm;
import DAO.userDAO;
import forusertable.Usertable;
import forusertable.UsertableDAO;
/**
* MyEclipse Struts
* Creation date: 07-07-2007
*
* XDoclet definition:
* @struts.action path="/user" name="userForm" input="/login.jsp" scope="request" validate="true"
* @struts.action-forward name="loginsuccess" path="loginsuccess.jsp"
* @struts.action-forward name="regsuccess" path="regsuccess.jsp"
* @struts.action-forward name="loginfail" path="loginfail.jsp"
* @struts.action-forward name="regfail" path="regfail.jsp"
*/
public class UserAction extends DispatchAction {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
/*DynaActionForm userForm = (DynaActionForm) form;*/// TODO Auto-generated method stub
UserForm userForm=(UserForm)form;
return null;
}
public ActionForward login (ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
System.out.print("arrive here");
UserForm userForm=(UserForm)form;
System.out.print("arrive here");
String username=(String)userForm.getUsername();
String password=(String)userForm.getPassword();
System.out.print("username:"+username+",password:"+password);
forusertable.Usertable user=new Usertable();
user.setUsername(username);
user.setPassword(password);
UsertableDAO userdao=new UsertableDAO();
if(userdao.login(user)){
return mapping.findForward("loginsuccess");
}
else{
return mapping.findForward("loginfail");
}
}
ActionForward tset (ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
System.out.print("arrive here tset");
return mapping.findForward("loginsuccess");
}
public ActionForward register(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
DynaActionForm userForm=(DynaActionForm)form;
Usertable user=new Usertable();
UsertableDAO userdao=new UsertableDAO();
String username=(String)userForm.get("username");
String password=(String)userForm.get("password");
String realname=(String)userForm.get("realname");
String email=(String)userForm.get("email");
Integer age=(Integer)userForm.get("age");
user.setUsername(username);
user.setAge(age);
user.setEmail(email);
user.setPassword(password);
user.setRealname(realname);
userdao.save(user);
return mapping.findForward("regsuccess");
}
}
struts-config.xml:
<action
attribute="userForm"
input="/login.jsp"<--就是这里,如果有多个页面要用到这个action应该如何配置啊?-->
name="userForm"
path="/user"
scope="request"
type="com.yourcompany.struts.action.UserAction"
parameter="method" >
<forward name="loginsuccess" path="/loginsuccess.jsp" />
<forward name="regsuccess" path="/regsuccess.jsp" />
<forward name="loginfail" path="/loginfail.jsp" />
<forward name="regfail" path="/regfail.jsp" />
</action>
分享到:
相关推荐
用jsp、action、struts-config.xml配置文件,举例说明了DynaActionForm 在struts1 中的作用。
DynaActionForm(动态表单)介绍及应用,Struts framework中,ActionForm对象的封装及应用,通过Struts framework中的DynaActionForm类及其子类可以实现动态的ActionForm ,动态的ActionForm允许你通过Struts的配置...
好东西 struts
在"Struts原理(二)"中,我们将深入探讨如何利用Struts框架的一些高级特性,如DispatchAction、资源文件的国际化、错误信息的显示、DynaActionForm以及实体对象作为Form属性的使用。 **掌握DispatchAction** ...
使用ActionForm可以简化表单数据的处理和验证,提高开发效率和代码的可读性。同时,ActionForm还提供了动态Bean和表单验证功能,提高了开发的灵活性和灵活性。 6. ActionForm的应用场景 ActionForm广泛应用于各种...
Struts7验证框架是用于Java Web开发中的一个...总的来说,Struts7验证框架和DynaActionForm是Struts框架中提高开发效率和代码质量的重要工具,它们帮助开发者轻松管理表单数据和验证逻辑,降低了J2EE应用程序的复杂性。
Spring框架是Java开发中广泛使用的轻量级应用程序框架,尤其在企业级应用开发中扮演着核心角色。本教程旨在帮助初学者快速...通过这个快速入门教程,你应该能开始独立地探索和使用Spring框架来构建更复杂的应用程序。
8. 为Web层创建Action和Model(DynaActionForm),实现对Web层的请求处理。 9. 填充JSP文件并创建相应的Action,使得Web层可以通过浏览器进行CRUD操作。 10. 进行功能测试,验证Action的CRUD操作是否正常工作。 11. ...
5. **JSP页面**: 在JSP页面中,你可以使用`<html:form>`标签来创建表单,通过指定DynaActionForm的名称,可以动态地生成表单元素。`<html:dynamic>`标签用于根据ActionForm的属性动态生成输入控件。 6. **控制器层...
**使用DynaActionForm和DynaValidatorForm** 在Struts中,`DynaActionForm`和`DynaValidatorForm`是两种常用的动态表单处理类。 - **DynaActionForm**:提供了一种动态管理表单字段的方式,字段可以在运行时添加...
例如,通过`<form-bean>`标签配置DynaActionForm,并在Java代码中使用`DynaActionForm`的get和set方法获取或设置值。 - **BeanUtils**:Jakarta Commons BeanUtils库提供了方便的Java Bean操作,可以简化对象属性的...
要使用StrutsDynForm,首先需要在Struts配置文件(struts-config.xml)中配置相应的Action和FormBean。Action通常会处理HTTP请求,而FormBean则用来封装表单提交的数据。配置示例如下: ```xml ...
在 Struts 中,我们可以使用标签和 Java Bean,只有这样一来,才能够把业务逻辑和页面表示彻底分开,提高了系统设计的规范性和代码的可重用性,为后期升级提供方便。 View Help 组件 View Help 组件是一种 ...
同时,要掌握Struts的运行机制、配置步骤和主要API接口,例如ActionForm和DynaActionForm。此外,还需要熟悉Struts的五大标签库以及如何扩展Struts功能以适应复杂的应用需求。 **Spring**框架则是一个全方位的应用...
在本文的实例中,使用了DynaActionForm和DispatchAction来动态管理表单字段和处理动作,同时借助Tiles来组织页面布局。另外,自定义标签被用来处理分页和身份验证这些常见的Web需求。 Spring框架则扮演了核心协调者...
这里,我们使用了`DynaActionForm`,它是Struts 1.0中动态表单的实现,可以方便地处理不同类型的表单字段。 3. **创建表单Bean**:在Struts应用中,表单Bean(通常是DynaActionForm)用于封装用户输入的数据。对于...
这篇学习笔记将深入探讨ActionForm的作用、使用方法以及它在Struts架构中的位置。 在MVC模式中,ActionForm扮演了模型层和控制器层之间的桥梁角色。当用户在视图层(通常是HTML表单)填写信息并提交后,这些数据会...