Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将对象从视图页传递到Spring控制器

将对象从视图页传递到Spring控制器
EN

Stack Overflow用户
提问于 2013-08-27 08:43:41
回答 1查看 3.1K关注 0票数 2

我需要将一个复杂的对象从视图页传递到Spring控制器。我正在尝试使用using属性(视图页是使用Thymeleaf和HTML构建的)。

我的问题是,对象是作为字符串传递的,而不是实际的对象,这会导致控制器端的强制转换异常。例如,下面的“类别”是一个复杂的对象,其中包含一个列表、一个数组、一个字符串和其他作为变量的对象。类别作为字符串而不是对象本身传递。如何将此对象传递给控制器?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Controller
public class QController extends WZController{

    @RequestMapping(value = "/refreshfacets")
    public String refreshfacets(HttpServletRequest request, HttpServletResponse response, Model model,
            @ModelAttribute("refreshFacetsRequest") refreshFacetsRequestDTO refreshfacetsrequest) throws Exception {
        Map<String, Object> responseMap = new HashMap<String, Object>();
        ProductSearchResult productsearchresult = new ProductSearchResult();
        //super.refreshFacets(request, response, model, productsearchresult);
        return XXXX;
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class refreshFacetsRequestDTO {

    private static final long serialVersionUID = 1L;

    private Category category;
    private String state;
    private String program;
    private String subject;
    private String year;
    private String price;

    // Constructor, getter, setter methods;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div th:remove="tag">
    <form method="post" id="form1" th:action="@{/refreshfacets}" th:object="${refreshFacetsRequest}">
    <input type="hidden" id="category" name="category" th:if="${category}" th:value="${category}"/>
    <input type="text" id="state" name="state" th:if="${state}" th:value="${state}"/>
    <input type="text" id="program" name="program" th:if="${program}" th:value="${program}"/>
    <input type="text" id="subject" name="subject" th:if="${subject}" th:value="${subject}"/>
    <input type="submit" th:attr="onsubmit=${'doAjaxPost()'}"></input>  
    </form>
</div>

请对此提出建议。传递对象的任何其他选项(模型属性除外)也是可以的。如果是的话,请详细说明你的其他选择。

EN

回答 1

Stack Overflow用户

发布于 2013-08-27 10:28:26

您似乎希望将Thymeleaf的选择器表达式与th:object="${refreshFacetsRequest}"一起使用。该表达式的表示法是*{someField}。相应地更改元素。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="hidden" id="category" name="category" th:if="*{category}" th:value="*{category}"/>

以上将解决${refreshFacetsRequest.category}问题。

编辑

从View到Controller,您要做的是让浏览器向HTTP服务器( servlet容器)发送HTTP请求。这里没有物体的概念。名为<input>category字段将作为请求参数在HTTP中传递。

Spring通常足够聪明,可以从请求参数转换为对象,但它需要一些信息。Category是一个枚举吗?如果是的话,Spring将尝试使用Category.valueOf(requestParam)来转换它。如果它是一个类,它将尝试使用其他具有与Category类字段匹配的名称的请求参数来实例化它,并在您用@ModelAttribute声明的refreshFacetsRequestDTO对象中设置它。

我不太明白您所说的检索值是字符串值是什么意思。是否出现了错误消息?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18471196

复制
相关文章
MVC 控制器中传递dynamic(对象) 给视图
 有时候不想重新定义一个实体,则使用 dynamic 来定义匿名类型。 //匿名类型 传递到前台 Model dynamic viewModel = n
纯粹是糖
2018/03/14
8810
MVC 控制器中传递dynamic(对象) 给视图
ASP.NET MVC 5 - 将数据从控制器传递给视图
在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图。控制器类将响应请求来的URL。控制器类是给您写代码来处理传入请求的地方,并从数据库中检索数据,并最终决定什么类型的返回结果会发送回浏览器。视图模板可以被控制器用来产生格式化过的HTML从而返回给浏览器。 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML。最佳做法是:一个视图模板应该永远不会执行业务逻辑或者直接和数据库进行交互。相应的,一个视图模板应该只和控制器所提供的数据进行交
葡萄城控件
2018/01/10
5K0
ASP.NET MVC 5 - 将数据从控制器传递给视图
从视图到控制器的传值方法(表单)
Views中: 将数据提交到某个控制器的方法中,在该方法中去做处理 <form action="/控制器/get"method=“post”> 姓名:<input type="text" name="SName"/> //SName是属性名称 性别:<input type="radio" name="sex" value="男"/>; <input type="radio" name="sex" value="女"/> //sex是属性名称 <input type="submit" valu
wfaceboss
2019/04/08
1.9K0
利用fluorineFx将DataTable从.Net传递到Flash
FluorineFx自带的示例都不错,就是有点不简洁,下面的代码基本上已经最简版了(环境vs2010) 1、先创建一个Web Application,然后添加FluorineFx以及FluorineFx.ServiceBrowser的引用 这二个程序集的默认位置在: C:\Program Files (x86)\FluorineFx\Bin\net\3.5\FluorineFx.dll C:\Program Files (x86)\FluorineFx\Bin\net\3.5\FluorineFx.Serv
菩提树下的杨过
2018/01/23
2.4K0
利用fluorineFx将DataTable从.Net传递到Flash
SpringMVC传递模型数据到视图
要求:处理方法返回值类型为 ModelAndView。在方法体中我们通过该ModelAndView对象添加模型数据。
Tim在路上
2020/08/04
8170
spring mvc 控制器方法传递一些经验对象的数组
由于该项目必须提交一个表单,其中多个对象,更好的方法是直接通过在控制器方法参数的数组。
全栈程序员站长
2022/07/06
4760
控制器到视图的传值方式
(3)TempData        TempData实际上保存在Session中,控制器每次执行请求时都会从Session中获取TempData数据并删除该Session。TempData数据只能在控制器中传递一次,其中的每个元素也只能被访问一次,访问之后会被自动删除。
wfaceboss
2019/04/08
1.3K0
iOS小技巧·把子视图控制器的视图添加到父视图控制器
把子视图控制器的视图添加到父视图控制器并覆盖 添加子控制器 #pragma mark - 添加子控制器 - (void)addSubControllers{ [self addChildViewController:_childViewController]; [self.view addSubview:_childViewController.view]; [_childViewController.view mas_makeConstraints:^(MASConstraintMaker
陈满iOS
2018/09/10
9730
从Oracle到PostgreSQL:动态性能视图 vs 标准统计视图
Oracle数据库的性能视图几乎可以说是最引以为骄傲的功能,在那样细粒度的采样统计强度下,依然保持卓越的性能,基于这些性能数据采样之后形成的AWR,更是Oracle DBA分析数据库性能问题的最重要手段之一。
数据和云01
2019/06/19
1.7K0
从Oracle到PostgreSQL:动态性能视图 vs 标准统计视图
从 Oracle 到 PostgreSQL :从 Uptime 到数据库实例运行时间
数据和云
2019/06/11
1.9K0
IOS开发之视图和视图控制器
        视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多。在UIKit框架中都有一个UIWindow来容纳我们的View。应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类。UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示。窗口是用来显示视图的,下面我们将会结合着实例来具
lizelu
2018/01/11
1.8K0
IOS开发之视图和视图控制器
从找对象到多线程
最近遇到了一个和多线程有关的事,顺便简单复习了下相关概念,稍后举个栗子?来解释下。 进程 and 线程 进程我们都知道,就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。
出其东门
2019/09/17
4090
从找对象到多线程
将XML导入到对象中
注意:使用的任何XML文档的XML声明都应该指明该文档的字符编码,并且文档应该按照声明的方式进行编码。如果未声明字符编码, IRIS将使用前面的“输入和输出的字符编码”中描述的默认值。如果这些默认值不正确,请修改XML声明,使其指定实际使用的字符集。
用户7741497
2022/07/04
1.6K0
[JavaScript进阶]从JavaScript原型到面向对象
首先给出结论,JavaScript 的本身是支持面向对象的,它本身具备着强大灵活的 OOP 语言能力。但是对于使用过基于类的语言 (如 Java 或 C++) 的开发人员来说,JavaScript 确实有点令人困惑,因为它是动态的,并且本身不提供一个 class 实现。虽然在 ES6 中引入了 class 关键字,但它只是一个语法糖,本质还是基于JavaScript 的原型来实现的。
用户1462769
2019/08/12
5640
[JavaScript进阶]从JavaScript原型到面向对象
MySQL从删库到跑路_高级(三)——视图
视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式。视图包含一系列带有名称的数据列和数据行,但视图中的数据并不真实存在于数据库中,视图返回的是结果集。
良月柒
2019/03/19
1.2K0
SpringMVC的视图控制器(二)
现在我们已经配置了 SimpleUrlHandlerMapping 和 InternalResourceViewResolver,可以使用它们来创建视图控制器了。要创建视图控制器,需要创建一个带有 @Controller 注解的类,并在这个类中添加用于处理 URL 的方法。这些方法将使用 InternalResourceViewResolver 来将视图名称解析为实际的视图,并将这些视图呈现给用户。下面是一个创建视图控制器的示例:
堕落飞鸟
2023/05/13
3530
C#报错——传递数组对象报错“未将对象引用设置到对象的实例”
从字面上理解这句话为,传递的数组对象(指的是数组aaa),没有将对象引用(指定的bbb,实际也是aaa本身,因为他们是同一片地址)设置到对象的实例(指的是没有实例化数组)
vv彭
2021/03/07
2.2K0
[CodeIgniter4]概述-模型,视图和控制器
当创建一个应用的时候,我们需要有一种便捷的代码结构。和很多 Web 框架类似, CodeIgnite 框架也使用了模型、视图、控制器结构,即 MVC 模式,来组织接着代码文件。这种方式可以将数据,展示部分和流程部分分别作为单独的部分存放在我们的应用中。需要注意的是,可能每个人会对某个元素所担任的角色有不同的看法,那么,下面我们就通过这个文档说明这些元素所担任的角色。
landv
2020/03/05
7690
ASP.NET MVC学习笔记04数据传递
上一篇的末尾讲到了,在了解模型之前,先来看看ASP.NET MVC是如何将数据从控制器传递给视图的。 ---- 简单梳理一下: 控制器想要请求的URL,控制器类是给您写代码来处理传入请求的地方,并从数据 库中检索数据,并最终决定什么类型的返回结果会发送回浏览器。视图模板可以被控制器 用来产生格式化过的HTML从而返回给浏览器. 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML。 最理想的模式下:一个视图模板应该永远不会执行业务逻辑或者直接和数据
李郑
2018/03/01
2.4K0
ASP.NET MVC学习笔记04数据传递
点击加载更多

相似问题

Spring jqGrid -将对象从视图传递到控制器

10

将隐藏对象从视图传递到控制器

10

将单个对象从控制器传递到视图

11

将复杂对象从视图传递到控制器

10

将JSON对象从控制器传递到视图(Jsp)

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文