java-web交流群:132607763
Action中有对象属性,表单提交后,action自动为对象赋值。
book类:
package com.mm.entity;
import java.util.Date;
public class Book {
private String name;
private String author;
private Date publishDate;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Date getPublishDate() {
return publishDate;
}
public void setPublishDate(Date publishDate) {
this.publishDate = publishDate;
}
public String toString() {
return this.name + ":" + this.author + ":" + this.publishDate;
}
}
action类
package com.mm.action;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import com.opensymphony.xwork2.ActionSupport;
import com.mm.entity.Book;
@ParentPackage("struts2Test")
public class BookAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String title;
private Book book;
@Action(value = "addBook", results = { @Result(name = SUCCESS, location = "/book.jsp") })
public String add() {
System.out.println(book);
title = "添加成功";
return SUCCESS;
}
@Action(value = "clear", results = { @Result(name = SUCCESS, location = "/book.jsp") })
public String clear() {
title = "清空了";
return SUCCESS;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
}
jsp页面:
<%@ page language="java" contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib uri="/struts-dojo-tags" prefix="sd" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>${title}aa</title>
<sd:head parseContent="true"/>
</head>
<body>
<s:form action="addBook">
<s:label value=" 添加图书"></s:label>
<s:textfield name="book.name" label="书名:"></s:textfield>
<s:textfield name="book.author" label="作者"></s:textfield>
<sd:datetimepicker name="book.publishDate" label="出版时间"></sd:datetimepicker>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
分享到:
相关推荐
处理Struts FormBean中的日期类型字段赋值,需要理解Struts的自动转化机制,利用`PropertyEditors`或配置文件来完成字符串到日期对象的转换。在实际开发中,要确保日期格式的统一性和转换的准确性,避免出现异常。...
Struts自动装填的核心在于其数据绑定机制。它通过`RequestProcessor`类处理HTTP请求,然后使用`PropertyUtils`或`BeanUtils`类将请求参数与ActionForm对象的属性进行匹配和赋值。这些工具类利用了JavaBean规范,即...
当Action类继承自ActionSupport时,Struts2会自动将请求参数按照属性名进行匹配并赋值。例如,如果页面上有名为"user.name"的输入字段,Struts2会尝试将该参数值赋给Action类的`private String name`属性。 然而,...
- **自动扫描Action类**:Convention Plugin能够自动扫描指定包(默认为struts,action及其子包)下的所有Action类,从而减少配置文件的工作量。 - **自动推断命名空间和视图路径**:根据Action类所在的包名自动...
通过实现`getModel()`方法返回模型对象,Struts2可以在处理请求时直接使用该对象。 ##### 4.2 Prepareable接口 实现`Prepareable`接口可以允许开发者在Action执行之前做一些准备工作,如初始化表单数据等。 #### ...
现在,当用户在前端输入坐标并提交表单时,Struts2框架会自动调用我们定义的`PointConverter`,将坐标字符串转换为Point对象,并将该对象赋值给Action类的point属性。这个案例展示了Struts2类型转换的强大功能,允许...
Struts2的核心类`ValueStack`维护着一组`ValueHolder`对象,这些对象包含了Action实例以及它们的属性。当请求参数与Action属性匹配时,`ValueStack`会调用`TypeConverter`接口的实现来执行转换操作。默认情况下,...
如果你的请求参数名与模型对象的属性名相同,那么Struts2会自动进行赋值。 4. **ActionContext**:在Struts2中,ActionContext是每个Action执行时的上下文环境,包含了请求、session、应用等范围的数据。...
当用户通过表单提交请求时,Struts2会自动尝试将请求参数转换为Action类中相应字段的类型。这一过程遵循以下步骤: 1. 用户发起请求,Struts2根据`struts.xml`配置文件找到对应的Action。 2. 在Action中,Struts2...
模仿Struts的Servlet可能也提供了类似的机制,通过注解或者配置文件,可以自动将请求参数赋值给Servlet中的对象属性,简化了数据处理的步骤。 为了实现这个功能,Servlet可能使用了以下技术: 1. 请求参数解析:...
- **赋值方式**:可以通过以下三种方式为新属性赋值: - 直接在标签体中设置值。 - 使用`name`、`property`和`scope`属性从已存在的bean中取值。 - 使用JSP表达式(EL)设置值。 **其他Bean Tags** - `bean:...
- **前台表单数据直接赋值到后台类属性**:Struts2的默认拦截器能够自动将HTTP请求参数映射到Action的属性上。 #### 五、Struts2执行流程 1. **用户请求**:用户通过浏览器发送*.action请求。 2. **执行Struts2...
5. 创建对应的Action类,包含一个日期类型的属性,Struts2会自动调用配置的转换器将请求参数转换为Action属性的值。 6. 测试并验证转换器是否正确工作,即用户输入的日期字符串能正确转换并赋值给Action的日期属性。...
- `value`:为该属性赋值。 #### 四、`<global-exceptions>`配置 `<global-exceptions>`标签用于全局配置异常处理机制,通过设置JAVA异常与异常处理类之间的映射关系,提高应用程序的健壮性和用户体验。 ##### ...
当页面通过表单提交一个简单的字符串或数字时,可以在Action类中直接定义相应的成员变量,Struts2会自动进行类型转换和赋值。例如,在HTML表单中,有如下代码: ```html <td width="48">ID <td><input name=...
例如,如果表单中提交了一个字符串"123",Struts2会自动尝试将其转换为整型,并将结果赋值给模型对象的整型属性。 2. **类型转换注解**:在模型对象的属性上使用`@Conversion`注解可以指定特定的转换器。例如,如果...
例如,当一个Action字段声明为`int`类型,而请求参数是一个字符串时,Struts2会自动调用IntegerTypeConverter尝试将字符串转换为整数。如果转换成功,Action字段就会被正确赋值;如果转换失败,Struts2会抛出异常。 ...
6. **POJO数据绑定**: Struts2支持直接使用POJO对象来处理表单数据,Action中可以直接定义与表单字段同名的属性,Struts2会自动进行数据绑定,无需像Struts1那样使用`request.getParameter()`。如果有多条数据,可以...
Hibernate支持对象关系映射,自动处理数据的持久化,极大地提高了开发效率。 总之,StrutsSpringHibernate三者结合,为开发者构建复杂、稳定且易于维护的Web应用提供了强大的支持。它们的集成使用能够实现高效的...