在我的Action
课程中,我有一个POJO类的对象。
public class ConfigureTspThresholdAction extends
ActionSupport implements SessionAware, ModelDriven<GmaThresholdParameter>{
private Map<String,Object> session;
private String circleId;
private String tspId;
private String thresholdTypeFlag;
GmaThresholdParameter gmaThresholdParameters = new GmaThresholdParameter();
GmaThresholdParameter
也是POJO(我的Entity
类),里面有各种各样的成员,我希望用户填写这些成员。
我在JSP中的textfields中获取了用户填充的值:
JSP:
<s:div id="thresholdParametersDiv" cssStyle="display: none">
<table>
<tr>
<td>Minimum Number of OG Calls</td>
<td><s:textfield id="thresholdParameter_1"
name="minNumberOc"
onkeypress="return isNumber(event,'thresholdParameter_1')"></s:textfield></td>
</tr>
<tr>
<td>Minimum Duration of OG Calls (in secs)</td>
<td><s:textfield id="thresholdParameter_2"
name="minDurationOc"
onkeypress="return isNumber(event,'thresholdParameter_2')"></s:textfield></td>
</tr>
<tr>
<td>Maximum Number of IC Calls</td>
<td><s:textfield id="thresholdParameter_3"
name="maxNumberIc"
onkeypress="return isNumber(event,'thresholdParameter_3')"></s:textfield></td>
</tr>
..........similarly other textfileds
</table>
文本字段中的name
属性,其值是GmaThresholdParameter
的成员变量,我想填充它。
现在,我想从这些文本字段中选取值,并在我的GmaThresholdParameter gmaThresholdParameters = new GmaThresholdParameter();
课程中填写Action
。
对于其他原始变量,我通过getter / setter填充它们,并使用与Action
类相同的名称发送我的AJAX调用,如:
JS:
$.ajax({
type: 'POST',
traditional: true,
url: '/gma/updateThresholdParameters.action',
data:
{
circleId: circleId,
tspId: tspId,
thresholdTypeFlag: thresholdTypeFlag,
// HERE I want to send my GmaThreshholdParameter object. How to send it so that it fills my object in action class ?
}
我想将GmaThreshholdParameter
对象从JavaScript发送到Action
类。如何发送它以使它在动作类中填充我的对象?
我应该从数组中的textfileds中收集值并发送它还是创建一个JavaScript Object
来从JavaScript中发送映射Java POJO对象的对象?
对此有什么解决方案吗?
答案 0 :(得分:1)
尝试在Struts2操作中为gmaThresholdParameters定义一个getter和一个setter。
然后,在您的javascript中,试试这个:
...
data:
{
circleId: circleId,
tspId: tspId,
thresholdTypeFlag: thresholdTypeFlag,
"gmaThresholdParameters.property1": whateverValueProperty1,
"gmaThresholdParameters.property2": whateverValueProperty2,
"gmaThresholdParameters.property3": whateverValueProperty3,
...
}
...
如果您为gmaThresholdParameters对象定义了一个空构造函数,并为其属性定义了getter和setter,那么它应该正确填充它。
答案 1 :(得分:1)
构造data
对象时,可以从文本字段中获取值。对于实现ModelDriven
和拦截器的引用,您不需要指定嵌套属性的路径,因为它们位于值堆栈的顶部。
data:
{
circleId: circleId,
tspId: tspId,
thresholdTypeFlag: thresholdTypeFlag,
minNumberOc: $("#thresholdParameter_1").val(),
minDurationOc: $("#thresholdParameter_2").val(),
maxNumberIc: $("#thresholdParameter_3").val()
}