action
package example;
import java.util.List;
/**
* <code>Set welcome message.</code>
*/
public class HelloWorld extends ExampleSupport {
private List<String> nextowner;
public String execute() throws Exception {
if(nextowner==null) return SUCCESS;
for(String owner : nextowner){
System.out.println(owner);
}
return SUCCESS;
}
/**
* Provide default valuie for Message property.
*/
public static final String MESSAGE = "HelloWorld.message";
/**
* Field for Message property.
*/
private String message;
/**
* Return Message property.
*
* @return Message property
*/
public String getMessage() {
return message;
}
/**
* Set Message property.
*
* @param message Text to display on HelloWorld page.
*/
public void setMessage(String message) {
this.message = message;
}
public List<String> getNextowner() {
return nextowner;
}
public void setNextowner(List<String> nextowner) {
this.nextowner = nextowner;
}
}
提交页面
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
<head>
<title><s:text name="HelloWorld.message"/></title>
</head>
<body>
<h2><s:property value="message"/></h2>
<h3>Languages</h3>
<ul>
<li>
<s:url id="url" action="HelloWorld">
<s:param name="request_locale">en</s:param>
</s:url>
<s:a href="%{url}">English</s:a>
</li>
<li>
<s:url id="url" action="HelloWorld">
<s:param name="request_locale">es</s:param>
</s:url>
<s:a href="%{url}">Espanol</s:a>
</li>
</ul>
<form action="example/HelloWorld.action" method="post">
<%
for(int i=0;i<10;i++){
%>
<input name="nextowner[<%=i%>]" type="text" value="名字 - <%=i%>" /><br>
<%
}
%>
<input type="submit" />
</form>
</body>
</html>
如果action 中 nextowner 定义成String[] 则报错,定义成list 就没问题了,谁能告诉我这是什么问题!
分享到:
相关推荐
在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...
本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action,并在后端进行处理。 首先,我们了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
此外,Struts2还支持使用注解来接收参数,这使得代码更加简洁。使用`@ActionParams`或`@Param`注解可以实现这一功能: ```java @Action(value = "submit") public String submit(@Param("username") String ...
2. **使用`@Params`注解**:如果参数名与Action属性不匹配,或者需要对参数进行类型转换,可以使用`@Params`注解来指定映射关系和转换规则。 3. **ModelDriven模式**:在Action类中实现`ModelDriven`接口,可以将一...
在Android开发中,与服务器进行数据交互是常见的...而`Struts2_JSON_Demo`可能是一个Struts2的项目,实现了返回JSON数据的Action。通过这两个示例,你可以更直观地学习和理解Android与Struts2之间JSON数据交换的过程。
3. **创建Struts2 Action**:在Struts2框架中,创建一个处理文件上传的Action类,该类通常会包含一个`List<HttpServletFileWrapper>`类型的属性,用于接收上传的文件。 4. **编写Struts2配置**:在struts.xml配置...
- `s:a`:创建链接,支持Action调用和参数传递。 5. **Struts2标签的优势**: - 避免过多的JSP脚本和表达式,提高页面可读性。 - 与Action强关联,方便数据绑定和验证。 - 提供内置的错误处理和国际化支持。 -...
Struts2的核心之一就是它对于参数传递的支持能力,这一点主要依赖于OGNL(Object-Graph Navigation Language)和ValueStack。通过这两个组件,Struts2实现了动态的数据绑定和灵活的类型转换功能。 #### 二、OGNL与...
本文将详细讨论如何在Struts2的Action中获取JSP页面的参数,以及相关的上下文类ActionContext和ServletActionContext。 1. **ActionContext获取请求参数** 当用户在JSP页面上提交表单时,表单数据会被封装到HTTP...
与Struts1相比,Struts2的`<s:a>`标签支持更多的参数设置,如可以设置href、params等属性,使得链接的生成更加灵活。 - **`<s:action>`**:用于执行Action,类似于Struts1中的`<s:send>`标签。但Struts2的`<s:...
2. **定义Action类**:在Action类中定义接收文件的方法,并使用Struts2提供的API完成文件的保存操作。 **注意事项:** - **文件大小限制**:默认情况下,Struts2对上传文件的大小有限制。可以在`struts.xml`或`...
13. **s:action标签**:执行一个Struts2 Action,可以嵌套其他Struts2标签,实现动态内容生成。 14. **s:include标签**:包含其他JSP页面,类似于JSP的,但支持动态参数传递。 15. **s:url标签**和**s:a标签**:...
在Struts框架中,ActionForm类是用于封装请求参数并传递到Action类进行业务逻辑处理的关键组件。当ActionForm中的属性涉及到对象数组时,处理方式就变得稍微复杂一些。以下将详细介绍如何处理ActionForm属性中存在...
Struts2内置了文件上传支持,只需在Action中声明`File`和`File`数组类型的属性,Struts2会自动解析HTTP请求中的文件数据并绑定到相应的属性上。 #### 错误处理 Struts2提供了异常拦截器,可以捕获并处理运行时发生...
- Struts2中的结果类型不包括`action`。 ##### 六、控制器需要在()配置文件中进行配置 **答案解析:** - 正确答案为 **B.struts.xml**。 - Struts2的控制器配置是在`struts.xml`文件中完成的。 ##### 七、在...
ActionContext是Struts2框架的核心组件之一,它维护着当前请求的环境信息,包括请求参数、session、application等数据。在每次HTTP请求处理时,Struts2都会创建一个ActionContext实例,并将其设置为线程局部变量,...
Struts2框架提供了拦截器机制,可以在Action执行前后执行某些操作,以满足特定的需求。TrimInterceptor就是一个这样的拦截器,它的主要功能是过滤请求数据的首尾空格。 TrimInterceptor实现 TrimInterceptor继承...
在Struts2中,OGNL作为视图层与控制器层之间的桥梁,负责解析和执行来自Action的请求参数,将它们映射到Action类的属性,同时将Action的结果传递给视图进行渲染。 1. **OGNL的基本语法** OGNL的语法非常灵活,可以...
14. **接收参数**:Struts2自动将请求参数绑定到Action的属性,同时支持接收数组、列表等复杂类型。 15. **自定义类型转换器**:对于标准类型转换器无法满足的转换需求,可以编写自定义的Converter。 16. **全局...