问题标签 [model-driven]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
struts2 - Struts2:在 getModel() 调用之前从请求中获取 id
我在将 Struts2 从 2.3.1 升级到 2.3.15 后遇到了这个问题。在我的操作中,我使用 ModelDriven Interface 来填充一个 bean。在请求中,我还传递了标识会话中对象的参数 id。id 参数不是 bean 的一部分。为了在 getModel() 之前填充 id 字段,我在其他拦截器前面使用了“params”拦截器。在 Struts 2.3.15 中,我从 ParametersInterceptor 收到很多错误 - 找不到 setter。它会为所有应该设置我的 bean 字段的字段抛出错误。处理这种情况的正确方法是什么?
list - 使用 ModelDriven 在 struts2 中添加对象列表>
我想使用 ModelDriven 将收据列表添加到数据库中。这是行动
}
这是 jsp 页面:文本字段的名称是 Receipitem 对象的属性
但它不起作用,receiptItemList 中的所有 Receiptitem 都为空。
java - 在Struts 2中使用ModelDriven接口时无法解析select标签中的list属性
ModelDriven
我在我的 Struts 2 应用程序中使用该界面。我在渲染页面时遇到问题,因为我总是收到错误消息:
我不知道错误在哪里,所以我向社区表示苦恼。
struts.xml
:
MyAction.java
:
MyModel.java
:
Item.java
:
JSP 文件:
java - 定义由类的不同方法使用的变量和类的最有效方法是什么?
我对有效的内存使用没有几个问题。我有一个表格,将提交以接收项目列表作为结果。一旦提交表单,其字段将由请求变量接收,并将由submitRequest
模型类的方法处理。
问题是我应该在哪里为请求变量 ( Request request = new Request
) 分配内存?在构造函数中?或者根本不分配它,因为它现在可以工作?
第二个问题是我应该在哪里创建一个Model
类对象,因为它被不同的方法使用。我应该在每种方法中定义它还是最好有一个对象?
java - 使用 JSP 时如何使用 Struts 2 ModelDriven 接口访问 POJO 中的属性?
我有一个实现ModelDriven
接口的动作类。这ModelDriven
是一个普通的 POJO,问题是它的一个属性是另一个对象。
想象一下我的 ModelDriven is a object called
Person and my person has an attribute called
Address that is another object.
Address has regular properties such as
String ,
Long` 等。
在我提交表单时的 JSP 中,所有使用的常规属性(如String
、int
、long
in )Person
都正确映射,但所有应该映射到地址的数据都没有。
这就是我尝试映射属性的方式。我可以正确使用 name 属性,但是在映射人员地址中的属性时,这种方法不起作用。
我究竟做错了什么?
随着时间的推移,我的Address
属性是在Person
实例化对象时声明的,所以它永远不会null
.
编辑:根据要求,这里是动作源和 DTO:
那个行动:
主要课程FakeDTO
:
班级FakeFilterDTO
:
struts.xml
:_
被放置project-default
在包含. 我可以保证,因为我在这个拦截器中放置了一个断点并让它通过那里。struts-config.xml
struts-default
ModelDrivenInterceptor
我之前用作示例的 JSP 将变为如下:
对于公司政策,我不允许复制/粘贴实际对象及其名称。但这就是想法。
java - 如何将别名拦截器用于实用程序类对象的属性
我有一个Action
名为的类MyFirstClass
,其中有一个String
变量和一个User
变量,如下所示:
该类User
具有String
变量 asuserName
和userAge
。
由于我的Action
类已经实现ModelDriven
了接口,因此类的变量User
应该根据请求获取/设置。
我还有一个 JSP 文件,其设计如下:
并struts.xml
设计为:
我的问题是:
由于我的 JSP 页面文本字段的名称与类中的属性名称不匹配User
。alias
在拦截器的帮助下,我无法像这样将请求参数设置为动作中的相应属性。
java - 如何在 Struts 2 中使用 ModelDriven 为动作类中的模型对象设置属性值?
使用此代码:
StudentAction.java:
学生.java:
在 JSP 中:
id
当我将JSP的值传递给delete
操作时,我想初始化Student
的id
属性。
这个怎么做?
drop-down-menu - 在 Struts2 的模型驱动动作类中使用下拉列表
我正在填充<s:select>
来自数据库。动作类是模型驱动的。
以下是<s:select>
:
这完美地工作。
我需要<s:select>
在另一个实现ModelDriven<ZoneTable>
.
表结构简单,transporter->zone_table->country->state->city
. 这些表之间存在一对多的关系。
我们怎样才能有一个模型驱动的动作类实现ModelDrven<ZoneTable>
,其中Transporter
可以映射到<s:select>
,比如?
这样做是行不通的。它不会transporterId
在提交时设置 的值,因为动作类正在实现ModelDriven<ZoneTable>
而ModelDriven<Transporter>
不像第一种情况。
这可能使用模型驱动的方法吗?
编辑:
ZoneTable.java
Zone.jsp
由于这篇文章已经有很多代码,所以我不在ZoneAction.java
这里发布动作类。如果需要,可在此处获得。
java - 在'class xxx上设置'xxx'时出现意外异常:错误设置表达式'xxx'的值['x',]
我将一些参数传递给ModelDriven<Transporter>
通过查询字符串实现的操作类。
动作类如下。
服务器终端显示以下消息。
即使日志级别是SEVERE
,这些参数的值在操作类中也可用
在edit()
方法中。
如果paramsPrepareParamsStack
到那时被替换defaultStack
,这些消息就会消失。
像这样的表达式['DHL', ]
表示一个数组。transporterId
和transporterName
在模型中,然而,分别是类型Long
和String
。
我究竟做错了什么?
java - POST 请求不使用 Struts 2 中的 ModelDriven 将表单值加载到模型中
我正在尝试使用ModelDriven
Struts 2 的界面创建一个动态 Web 应用程序。我使用过 Struts1,但这是我第一次尝试使用 Struts 2。
我能够从存储在数据库中的值填充表单,但是当我修改值并尝试更新数据库时,表单值没有被加载到模型中。
我已经在这里上传了整个项目(此时它确实需要一个 MySQL 数据库来运行)。
加载项目后:
- 去
http://localhost/Vikos/secure/user
。 - 您将被引导至登录页面。输入:
logon email = consumer@test.com
和password = password
。 - 您将被带到一个
User
页面,其中包含从数据库填充的表单。如果您更新姓氏字段并点击<Update>
按钮,它应该更新数据库中的值,但它不会将值传回。
如何从 HTML 表单中获取值到模型中?
更新:
我重新命名了这篇文章并稍微修改了内容以更准确地描述正在发生的事情。我还在UserAction.prepare()
方法中添加了一些调试代码。看起来 Struts2 正在尝试UserModel
使用字符串数组 () 加载属性,parmValues
而不是参数数组 ( correctVal
) 的第一个元素。
13:21:42.773 [http-bio-80-exec-7] 错误 coxiParametersInterceptor
- 开发人员通知(将 struts.devMode 设置为 false 以禁用此消息):在 'class com.codedeart.vikos.action.UserAction 上设置'email'时捕获意外异常:错误设置表达式'email',值为'[Ljava.lang.String ;@7e227c19'
13:21:42.775 [http-bio-80-exec-7] 错误 coxiParametersInterceptor
- 开发人员通知(将 struts.devMode 设置为 false 以禁用此消息):在 'class com.codedeart.vikos.action.UserAction 上设置'firstName'时捕获意外异常:错误设置表达式'firstName'的值为'[Ljava.lang.String ;@378da3ff'
13:21:42.776 [http-bio-80-exec-7] 错误 coxiParametersInterceptor
- 开发人员通知(将 struts.devMode 设置为 false 以禁用此消息):在 'class com.codedeart.vikos.action.UserAction 上设置'lastName'时捕获意外异常:错误设置表达式'lastName'的值'[Ljava.lang.String ;@3409d6d7'
13:21:42.778 [http-bio-80-exec-7] 错误 coxiParametersInterceptor
- 开发人员通知(将 struts.devMode 设置为 false 以禁用此消息):在“com.codedeart.vikos.action.UserAction 类”上设置“middleName”时捕获意外异常:设置表达式“middleName”时出错,值为“[Ljava.lang.String” ;@13b29db7'
更新2:
看起来这个问题与其他使用自定义类型转换器修复它的人报告的问题相似。我试图根据本教程实现自定义类型转换器。我还没有达到实际进行任何类型转换的地步,因为我的方法UserTypeConverter
没有触发。我已将最新代码上传到 BitBucket。
PS:
我的 JSP 和后端 Struts 实现有问题。答案是遵循 Uchenna 和 Roman 下面提供的建议。我将继续在 BitBucket 中更新我的项目,因此希望没有其他人需要犯这些错误。