在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
分享到:
相关推荐
struts中动态form
关于STRUTS标签的一些详细说明。 如:<html:form>的说明。
Struts2教程:处理一个form多个submit
一个简单易懂的struts form 表单(html:form)与form表单的混合用法。
Struts2 Struts2 Struts2 教程 1 1 1 :第一个 Struts2 Struts2 Struts2 程序 在本系列教程中我们将学习到 Struts2 的各种技术。在本教程中使用的工具和程序库的版本 如下: 开发工具: MyEclipse6 Web 服务器: ...
Struts2标签库的组成 Struts2框架的标签库可以分为以下三类: 用户界面标签(UI标签):主要用来生成HTML元素的标签。 表单标签:主要用于生成HTML页面的FORM元素,以及普通表单元素的标签。 非表单标签:主要用于生成...
该属性指定是否允许在Struts 2标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true,该属性的默认值是true. struts.devMode 该属性设置Struts 2应用是否使用开发模式.如果设置该属性...
struts2+jquery之form插件实现异步上传
struts2的s标签_API_Java_struts_程序开发
2.其次JSP页面中的文件上传控件所在的form必须设置属性enctype="multipart/form-data" 3.再次,struts2中文件上传将底层高度封装了。在使用时只需要在ACTION中添加三个字段(其中 List<File> files为必填项),...
struts2文件上传与下载, <s:form name="Myform" action="/fileManage/upload" method="post" enctype="multipart/form-data" theme="simple" > <s:fielderror></s:fielderror> <s:file name="image" label=...
In this tutorial we'll explore some of the other Struts 2 form controls. In our previous tutorials that explained how to use Struts 2 forms (Processing Forms, Form Validation, and Message Resource ...
Struts高级部分(2)(常用Action、验证框架、动态Form) 很不错的资料啊。,可帮助大家解决很多捆难。。
<html:form> <html:form>用来创建表单,<html:form>必须包含一个action属性,否则JSP会抛出一个异常.
Struts 2中实现文件下载 文件下载
<s:textfield label="用户名" name="username"/> <s:password label="密码" name="password"/> <s:submit label="提交"/></s:form>我们看着以上的代码跟HTML的差不了多少,但是因为struts2表单默认将表单内的每一个...
struts2官方例子10--Struts2的Form标签
今天初次使用Struts 2做文件上传,出现了一个错误, ognl.MethodFailedException: Method "setUpload" failed for object 文件类型的限制会在struts.xml中进行配置 几种常见的类型,图片格式image/jpeg,image/gif ...
1、form是一个pojo 2、action是一个pojo,所以struts2.0与框架的藕合度非常低。 实现Action时有时会继承于ActionSupport, 覆盖execute方法,从而创建一个Action。 因为ActionSupport提供了很多方法可以为...
使用struts2 框架 中的文件上传,然后使用ajax上传图片以及form表单的数据