`
alert_mm
  • 浏览: 168775 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

提交一个list

JSP 
阅读更多

为了让系统知道List里的元素类型,为了让系统的类型转换器起作用,有两种方法:

1、使用泛型来限制集合里元素的类型;eg:在Action类代码中关于user属性的泛型定义为:private List<user> user;

2、使用Struts2的配置文件:使用局部类型转换的配置文件来指定集合元素的数据类型。

为了在局部类型转换文件中指定集合元素的类型,应该在局部类型转换文件中增加如下的key-value对:

Element_xxx = 复合类型 (说明:key-value对中的Element是固定的,xxx是Action中的集合属性名,复合类型是集合元素类型的全限定数类名[应该增加完整的包前缀])

eg:Element_user = lee.User    //指定Action类的user集合属性的元素为lee.User实例

下面先介绍一下局部类型转换器的注册,要注册类型转换吕只需提供文件名为如下格式的文件:

  ActionName-conversion.properties:ActionName是需要转换器第一次的Action的类名,后面的-conversion.properties字符串则是固定部分。

   eg:对于LoginAcion.java类,则应该提供的类型转换器注册文件的文件名为:LoginAction-conversion.properties,该文件由key-value对组成。文件内容为: propertyName=类型转换器类

  LoginAction-conversion.properties文件应该与LoginAction.java文件放在相同路径下(如LoginAction.java的包为lee,则该文件也应放在包lee内)。

这么多文字描述还是没有来一个实例要讲的清楚,要让人容易明白,嘿嘿,现在下面就来个实例看看吧!!

FeeItemAction.java

package lee;
public class FeeItemAction extends ActionSupport implements ServletRequestAware
{
    private HttpServletRequest request;
    private List<StkMasModel> modelList;//提交list
    
    public String execute() throws Exception
    {
        FeeItem feeItem = new FeeItemImp();
        if(modelList != null && modelList.size() > 0)
       {
	for(StkMasModel model:modelList)
	{
	       feeItem = new FeeItemImp();
	       feeItem.setStkPkNo(model.getStk_pk());
	       feeItem.setCatName(model.getCatName());
	       feeItem.setCatPkNo(model.getCatPkNo());
	       feeItem.setStkName(model.getName());
	       itemService.saveOrUpdateFeeItem(feeItem);		
	}
				
       }
       else
      {
	log.warn("*********The size of model less than zero!********");
      }     }

                public void setServletRequest(HttpServletRequest request)
	{
		this.request = request;
	}
	public List<StkMasModel> getModelList()
	{
		return modelList;
	}
	public void setModelList(List<StkMasModel> modelList)
	{
		this.modelList = modelList;
	}
}

 FeeItemAction-conversion.properties

Element_modelList=lee.StkMasModel

 

StkMasModel.java

package lee;
public class StkMasModel
{
	private Long stk_pk;
	private String catName; 
	private Long catPkNo;	
	private String name; 
         public String getCatName()
	{
		return catName;
	}
	public void setCatName(String catName)
	{
		this.catName = catName;
	}
     //省略了其它的get 和set...
}

 list.jsp

<form action="saveFeeItems.html" id="saveFeeItemsForm" method="post">
<s:iterator status="st" value="#request.reList" id="stkList">
<input type="hidden" name="modelList[${st.index}].stk_pk" value=''>
<input type="hidden" name="modelList[${st.index}].catName" value=''>
<input type="hidden" name="modelList[${st.index}].catPkNo" value=''>
<input type="hidden" name="modelList[${st.index}].name" value=''>
</s:iterator>
<input type="submit" value="提交">
</form>

 以上文件为对应关系。

1
0
分享到:
评论

相关推荐

    struts1.2 from表单提交包含list的对象

    这个Bean应该包含一个List属性,例如`List&lt;Product&gt;`,其中Product是另一个Bean,包含了商品的各个属性。在表单提交后,Struts的默认数据绑定机制会尝试将请求参数自动绑定到ActionForm的属性上。 接着,Action类会...

    提交多行数据到Struts的ActionForm的List属性中

    这里,我们为每个表单字段定义了一个动态的属性名,如`items[0].name`和`items[1].description`,这使得Struts在处理POST请求时能够将这些值映射到一个List类型的属性上。假设我们有一个名为Item的类,它有name和...

    基于springboot的4个常见的复杂请求Demo,含实体嵌套List提交、通文件上传、List提交、数组Array提交

    例如,有一个`Student`实体类,其中包含一个`Course`的List。Spring Boot通过Jackson库自动将JSON转换为Java对象。创建对应的实体类和控制器方法,如下所示: ```java public class Student { private String name...

    ajax传递list对象数组

    本篇将详细介绍如何通过AJAX来传递一个List对象数组,并解析其中涉及到的关键技术点。 #### 二、知识点概览 1. **前端JavaScript处理List对象数组** 2. **使用jQuery的$.ajax方法发送POST请求** 3. **后端接收List...

    SharedPreferences存取list集合

    以下是一个例子,展示如何将List存入SharedPreferences: 1. 序列化: ```java public static String serializeList(List&lt;String&gt; list) { Gson gson = new Gson(); return gson.toJson(list); } ``` 这里我们...

    保存一个list

    标题 "保存一个list" 暗示我们关注的是在编程中如何持久化存储一个列表(List)对象。在这个场景中,列表可能包含了各种数据类型,如整数、字符串或者其他复杂对象。保存列表是为了防止程序关闭后丢失数据,或者在...

    Android 保存List数据(SharedPreferences)

    然后使用`edit()`方法创建一个可编辑的SharedPreferences.Editor对象,进行数据的添加、修改、删除操作,最后调用`commit()`或`apply()`来提交更改。 在处理List数据时,由于SharedPreferences不直接支持List类型的...

    struts2 向action提交list.html

    struts2 向action提交list.html

    Docker中的Alist挂载qBittorrent实现离线下载

    首先,理解这个过程的关键在于Alist和qBittorrent的集成以及Docker容器之间的通信。 1. **配置Alist连接qBittorrent** - 首先进入Alist管理界面,选择“管理”选项。 - 在“设置”中找到“其他”,在这里输入...

    获取checkboxlist选中的value和text

    首先,我们创建一个`CheckBoxList`控件。在ASP.NET的`.aspx`页面中,你可以这样定义它: ```html &lt;asp:CheckBoxList ID="CheckBoxList1" runat="server"&gt; &lt;asp:ListItem Value="1" Text="Option 1"&gt;&lt;/asp:ListItem...

    CheckBoxList的用法

    `CheckBoxList`是ASP.NET Web Forms框架中的一个控件,它允许用户从一系列复选框中进行选择。这些复选框通常用来收集用户的选择偏好或者多选数据。与普通的单个复选框不同,`CheckBoxList`提供了一个方便的方式来...

    一个Struts1多文件上传实例(附Form中传List示例)

    在Struts1中,ActionForm类需要有一个对应的List字段来接收这些值,这样在提交表单时,Struts1的默认Binding机制会自动将这些值绑定到List中。 4. **配置文件**: 配置文件(struts-config.xml)需要添加相应的...

    List<Map<String, List>> data保存到SharedPreference和读取

    首先,我们需要创建一个工具类,用于序列化和反序列化`List, List&lt;String&gt;&gt;&gt;`。通常我们可以使用`Gson`库来实现这个功能,因为它提供了方便的JSON转换方法。如果你的项目中还没有引入Gson库,可以在build.gradle文件...

    javascript控制页面重复提交

    在网页开发中,防止用户意外或恶意重复提交数据是一个重要的考虑因素。这可能导致数据库中的冗余数据,甚至可能对服务器造成不必要的压力。本篇文章将详细探讨如何使用JavaScript来控制页面的重复提交,确保每个表单...

    aspx中checkboxList扩展

    在这个主题中,"RadioButtonListHelper"可能是一个用于辅助处理RadioButtonList(单选按钮列表)的类或方法,虽然它不是CheckboxList,但可能提供了类似的功能增强,比如数据绑定、样式定制、事件处理等,帮助开发者...

    struct2传递list集合到页面

    当用户提交表单时,我们可以获取这些值并将它们添加到list中,然后重定向到另一个Action。 1. **接收表单数据**:在Action中,我们需要定义与表单元素对应的属性,并使用Struts2的注解进行绑定: ```java ...

    在服务器上提交WRF作业时的一些命令操作

    a 选项指定作业提交的日期和时间,-c 选项指定作业的检查点间隔,-C 选项指定directive prefix ,-e 选项指定标准错误信息的重定向路径,-I 选项以交互方式运行作业,-j 选项将标准输出信息和标准错误信息合并到一个...

    ASP.NET 中Checkboxlist添加到数据库代码案例

    通过使用 `CheckBoxList` 控件,用户可以选择其中的一个或多个选项。这种控件非常适合于需要收集用户关于多个选择的数据场景。 #### 二、遍历 CheckBoxList 控件的项 在 ASP.NET 中,可以通过访问 `CheckBoxList....

    非侵入代码的java自动分批提交数据组件

    mybatis框架在执行批量插入或者更新的时候限制入参...突破mybatis批处理数据量2100个的限制,另一个应用场景是,即使没有用到mybatis,也可以作为自动分批提交的工具,防止一次性提交数据过大导致数据库自动提高锁级别

    vc开发的list控件打印类

    然而,将List控件的内容打印出来并不是一个简单的过程,因为VC++的打印机制相对复杂,特别是涉及到对话框(Dialog-based)程序时。本文将深入探讨如何利用VC++实现List控件的打印功能,并提供一个可能的解决方案。 ...

Global site tag (gtag.js) - Google Analytics