Struts2中域模型传值详解与示例
需积分: 9 140 浏览量
更新于2024-09-14
收藏 1KB TXT 举报
"在Struts2框架中,域模型(Domain Model)的使用是核心组件之一,它有助于组织和管理应用逻辑中的数据。本篇文章将详细介绍如何在Struts2中利用域模型(如Person类)进行数据传递以及前端页面的动态展示。首先,我们来看一个简单的例子,涉及两个关键部分:领域对象定义和Action实现。
1. 领域对象(Domain Model):Person类
创建一个名为`Person.java`的类,该类需继承自`ActionSupport`,这是Struts2提供的基础Action类,包含了常见的属性处理方法(如getter和setter)。例如:
```java
package com.xfrj.t3.entity;
import org.apache.struts2.ServletActionSupport;
public class Person extends ServletActionSupport {
private String username;
private String usersex;
private int userage;
private String useraddress;
// getters and setters
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
// ...其他属性的getter和setter
}
```
2. Action实现:PersonAction.java
在`com.xfrj.t3`包下的`PersonAction.java`中,我们需要实例化Person对象并在execute方法中进行业务逻辑处理。例如,接受POST请求并设置域模型:
```java
package com.xfrj.t3;
public class PersonAction extends ActionSupport {
private Person p;
public void setP(Person p) { this.p = p; }
public String execute() {
// 业务逻辑,如验证输入并保存到数据库
// ...
return "success"; // 或者根据业务逻辑返回相应的结果
}
}
```
3. Struts.xml配置
配置Struts2的`struts.xml`文件,将PersonAction映射到URL,指定数据绑定规则:
```xml
<package name="t3" extends="struts-default">
<action name="person" class="com.xfrj.t3.PersonAction">
<result name="success">/success.jsp</result>
<result name="input">/input.jsp</result>
</action>
</package>
```
4. JSP页面:表单提交
在`input.jsp`中,使用Struts2的`<s:form>`标签和`<s:property>`标签来显示和绑定域模型:
```jsp
<form action="person" method="post">
<s:property value="p.username"/>
<br/>
<input type="text" name="p.usersex"/>
<br/>
<label><s:property value="p.userage"/></label>
<br/>
<textarea name="p.useraddress"></textarea>
<br/>
<input type="submit" value="提交"/>
<s:debug></s:debug>
</form>
```
5. 数据绑定与错误处理
在表单提交时,如果存在`username`字段未被正确提供,JSP页面可能无法获取到值,如代码中提到的`Ҳ{username}`。这通常意味着在Action中没有正确的数据绑定,或者提交的数据结构不匹配。需要检查Action中是否正确地将请求参数绑定到了`p`对象上。
6. 权限控制
页面上的逻辑判断,如`if("admin".equals(name))`,用于权限验证。如果用户不是管理员,会修改用户名并返回相应的结果,比如`SUCCESS`或`INPUT`。
总结:
在Struts2中,使用域模型进行数据传递主要包括以下几个步骤:
- 定义一个Java对象,作为领域模型,包含业务属性和访问器方法。
- 创建Action类,接收并处理域模型,执行业务逻辑。
- 在Struts.xml中配置Action和结果映射。
- 在JSP页面上使用`<s:form>`和`<s:property>`进行数据绑定和显示。
- 进行必要的数据验证和错误处理,如权限控制和输入检查。
通过以上步骤,你可以有效地组织和传递数据,确保应用的健壮性和用户体验。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-04-19 上传
2015-05-05 上传
2015-07-22 上传
2012-12-12 上传
lichen912320
- 粉丝: 0
- 资源: 2
最新资源
- Angular程序高效加载与展示海量Excel数据技巧
- Argos客户端开发流程及Vue配置指南
- 基于源码的PHP Webshell审查工具介绍
- Mina任务部署Rpush教程与实践指南
- 密歇根大学主题新标签页壁纸与多功能扩展
- Golang编程入门:基础代码学习教程
- Aplysia吸引子分析MATLAB代码套件解读
- 程序性竞争问题解决实践指南
- lyra: Rust语言实现的特征提取POC功能
- Chrome扩展:NBA全明星新标签壁纸
- 探索通用Lisp用户空间文件系统clufs_0.7
- dheap: Haxe实现的高效D-ary堆算法
- 利用BladeRF实现简易VNA频率响应分析工具
- 深度解析Amazon SQS在C#中的应用实践
- 正义联盟计划管理系统:udemy-heroes-demo-09
- JavaScript语法jsonpointer替代实现介绍