在struts1中,我们知道,需要定义一个form类,来对应jsp页面,进行页面数据的传输和交换,在开放的过程中可以使用struts1提供的方便的动态form进行开发,比较方便,那么在struts2中同样也可以使用类似struts1中的动态form,请看如下的例子:
我们实现一个登陆功能来展示动态form的使用,首先定义一个Action类:
public class LoginAction implements Action
{
//定义一个Map,用来装载页面数据,他是实现动态form所必须的,并实现getter和setter方法,并定义对该map中Value进行设置和获取的方法:setFormValue,getFormValue
private Map formMap = new HashMap();
public Map getFormMap()
{
return formMap;
}
public void setFormMap(Map _map)
{
this.formMap = _map;
}
public void setFormValue(String key, Object value)
{
formMap.put(key, value);
}
public Object getFormValue(String key)
{
return formMap.get(key);
}
public String execute()throws Exception
{
String userName = (String)this.getFormValue("username");//取得用户名称
String password = (String)this.getFormValue("password");//取得用户密码
if(userName.equals("admin") && password.equals("123456"))//判断用户名称和密码是否正确
{
return SUCCESS; //用户和密码正确,登陆成功
}
else
{
return ERROR;//用户名称或密码不正确,登陆失败
}
}
}
接着定义3个jsp页面(仅仅写出关键代码),一个用来登陆,一个用来显示登陆成功,一个用来显示登陆失败。
登陆页面:login.jsp
<%@ page language="java" pageEncoding="GB18030"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>登陆</title>
</head>
<body>
<form action="login.action" name="login" method="post">
用户名称:<input type="text" name="formMap.username"><br>
用户密码:<input type="password" name="formMap.password"><br>
<input type="submit" value=" 登 陆 ">
</form>
</body>
</html>
登陆成功页面:success.jsp
<%@ page language="java" pageEncoding="GB18030"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
</head>
<body>
<s:property value="formMap.username"/> 欢迎你的登陆!
</body>
</html>
登陆失败页面:error.jsp
<%@ page language="java" pageEncoding="GB18030"%>
<html>
<head>
</head>
<body>
登陆失败,用户名称或密码不正确!
</body>
</html>
好,到目前为止,差不多已经完成了,是不是就可以了呢,不是的,其实我们还少一步,那就是需要进行配置文件的配置,告诉struts2在哪里可以找到页面,下面是配置信息片段:
<action name="login" class="com.stars.poplar.base.permission.action.LoginAction">
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
</action>
好了,终于大功告成了,个人感觉在一部份项目中使用动态form会很方便,推荐使用,当然并不是所有的都需要这个,毕竟真理向前一步就是谬误,希望我们在开发的实际过程中能够运用的更好,提高开发效率。
转:http://china-bin.blogbus.com/logs/8222506.html
分享到:
相关推荐
总结来说,Struts2通过在Action类中定义与submit按钮对应的方法,以及在JSP页面中使用`s:submit`标签的`method`属性,实现了对一个表单内多个submit按钮的区分处理。这种方法提高了代码的可读性和可维护性,同时也...
这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查。 首先,我们来看Struts2的核心概念。Struts2作为MVC框架,它负责处理HTTP...
struts中动态form
关于STRUTS标签的一些详细说明。 如:<html:form>的说明。
2. **配置struts-config.xml**:在Struts的配置文件中,为DispatchAction创建ActionMapping,并设置`parameter`属性为请求参数,用于区分不同的业务方法。 ```xml ``` 3. **发起请求**:用户通过URL来触发不同...
在Struts2框架中,标签库是其一大特色,它提供了丰富的自定义标签,使得开发者能够更加便捷地创建动态页面。这些标签极大地简化了JSP页面的编写,提高了代码的可读性和可维护性。 1. **Struts2核心标签库**: - `s...
接下来,在`struts-config.xml`文件中声明这个Form Bean,以便Struts框架知道如何使用它: ```xml <form-beans> <form-bean name="testForm" type="com.example.TestForm" /> </form-beans> ``` **3. 使用...
4. **Interceptor配置**:根据需求添加Struts 2特有的拦截器,以实现Struts 1中类似的功能,如Session管理、异常处理等。 5. **配置合并**:合并Struts 1和Struts 2的配置文件,确保请求能正确路由到相应的Action。...
- 配置Struts2:在`struts.xml`配置文件中定义Action类、结果页面和拦截器。 - 创建Action类:这是处理用户请求的核心,实现业务逻辑。 - 编写JSP页面:使用Struts2的标签库来展示数据和处理用户输入。 3. **...
这个官方示例10专注于讲解如何在Struts2中使用Form标签。 Form标签主要用于创建HTML表单,并与Action类中的属性进行绑定。这使得在前端和后端之间传递数据变得更加方便。使用Form标签,你可以指定一个Action类,这...
2. **动态Form Bean**: 当表单字段数量不确定或动态变化时,可以使用动态Form Bean。这种类型的Bean使用List或Map来存储数据。例如,如果一个表单允许用户添加任意数量的联系人,可以在Form Bean中定义一个List来...
2. **数据绑定**:Struts1使用Form Bean,Struts2使用OGNL,后者更强大,支持动态数据绑定。 3. **异常处理**:Struts2的异常处理更直观,可以配置全局异常处理。 4. **性能**:Struts2在某些方面比Struts1更快,...
5. **国际化和本地化**:两者都支持,但在Struts2中更加简单,可以直接在Action类或JSP页面中使用。 6. **视图层**:Struts1使用Tiles框架来组织视图,Struts2则提供了更多视图技术的选择,如FreeMarker、JSP、...
本篇将深入探讨Struts框架的高级部分,包括常用Action、验证框架以及动态Form,这些都是开发过程中不可或缺的重要概念。 一、常用Action Action是Struts的核心组件,它负责处理用户请求,并进行业务逻辑处理。在...
Struts1和Struts2是两个著名的MVC框架,它们都是Apache软件基金会的Apache Struts项目的一部分,用于构建基于Java的Web应用程序。然而,两者在设计和实现上有显著的差异。 1. **架构模式的区别** - **Struts1.x** ...
Struts2和AjaxForm是两种在Web开发中广泛使用的技术,它们共同作用于提升用户体验,尤其是在处理表单数据时。Struts2是一个基于MVC(Model-View-Controller)架构的Java Web框架,它简化了Java Servlets和JSPs的开发...
- **`<s:iterator>`**:用于遍历集合中的元素,类似于Struts1中的`<logic:iterate>`,但Struts2的实现更为高效,并且支持更复杂的操作,如排序、过滤等。 #### 结论 Struts2标签库相比于Struts1提供了更多的功能和...
首先,在使用Struts 2标签之前,需要在web.xml文件中配置Struts 2的核心Filter。这是因为Struts 2的核心Filter是Struts 2框架的入口点,负责处理所有的请求。配置的代码如下所示: ``` <filter-name>struts2 ...
`struts2标签用法.doc`和`标签详解`文件可能包含更深入的标签用法和实例,例如如何使用`s:form`创建表单,如何利用`s:action`执行Action,以及如何使用`s:debug`标签进行调试等。 5. **Struts2标签的高级用法** -...
在JSP页面中,我们可以使用以下Struts2标签来实现: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> 用户列表 <s:iterator value="users"> <s:property value="name"/> | <s:property value=...