Java 在Struts 2中使用ModelDriven访问POJO属性?

Java 在Struts 2中使用ModelDriven访问POJO属性?,java,javascript,ajax,jsp,struts2,Java,Javascript,Ajax,Jsp,Struts2,我在Struts2中使用了ModelDriven,这样我的模型对象内部就有了另一个具有属性的对象。我正在做一个AJAX调用,希望我的模型对象由用户填充 JSP: <s:select list="#session.circleIdNameMap" headerKey="-1" headerValue="Select Circle" name="id.circleId" id="selectCircleDropDown" onchange="findTspNameIdMap(thi

我在Struts2中使用了
ModelDriven
,这样我的模型对象内部就有了另一个具有属性的对象。我正在做一个AJAX调用,希望我的模型对象由用户填充

JSP:

<s:select list="#session.circleIdNameMap"
  headerKey="-1" headerValue="Select Circle"
  name="id.circleId" id="selectCircleDropDown"
  onchange="findTspNameIdMap(this.value)">
</s:select>
 $.ajax({   
    type: 'POST',
    url: '/gma/findTspNameIdMap.action',
    data: 
    { 
        id.circleId: circleId,
        minNumberOc: $("[name='minNumberOc']").val(),
        minDurationOc: $("[name='minDurationOc']").val(),
    },
public class GmaThresholdParameter implements Serializable {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private GmaThresholdParameterPK id;
   //getter/setters of id
public class GmaThresholdParameterPK implements Serializable {

    private static final long serialVersionUID = 1L;

    @Column(name="CIRCLE_ID")
    private int circleId;

    @Column(name="TSP_ID")
    private int tspId;

    private String flag;
   //getter/setters
public class ConfigureTspThresholdAction extends ActionSupport implements SessionAware, ModelDriven<GmaThresholdParameter>{

    private Map<String,String> circleIdNameMap;
// MODEL object
    GmaThresholdParameter gmaThresholdParameters = new GmaThresholdParameter();
   .....
   ...
   public GmaThresholdParameter getGmaThresholdParameters() {
    return gmaThresholdParameters;
}


public void setGmaThresholdParameters(
        GmaThresholdParameter gmaThresholdParameters) {
    this.gmaThresholdParameters = gmaThresholdParameters;
}

@Override
public GmaThresholdParameter getModel() {
    return gmaThresholdParameters;
} 
然而,在firebug中,我得到了一个错误

SyntaxError: missing : after property id
id.circleId: circleId,  
但其他直接属性,如
minNumberOc
可以正常工作,但不能
id.anything
。我正在发布我的模型对象和动作类

gmasthresholdParameter:

<s:select list="#session.circleIdNameMap"
  headerKey="-1" headerValue="Select Circle"
  name="id.circleId" id="selectCircleDropDown"
  onchange="findTspNameIdMap(this.value)">
</s:select>
 $.ajax({   
    type: 'POST',
    url: '/gma/findTspNameIdMap.action',
    data: 
    { 
        id.circleId: circleId,
        minNumberOc: $("[name='minNumberOc']").val(),
        minDurationOc: $("[name='minDurationOc']").val(),
    },
public class GmaThresholdParameter implements Serializable {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private GmaThresholdParameterPK id;
   //getter/setters of id
public class GmaThresholdParameterPK implements Serializable {

    private static final long serialVersionUID = 1L;

    @Column(name="CIRCLE_ID")
    private int circleId;

    @Column(name="TSP_ID")
    private int tspId;

    private String flag;
   //getter/setters
public class ConfigureTspThresholdAction extends ActionSupport implements SessionAware, ModelDriven<GmaThresholdParameter>{

    private Map<String,String> circleIdNameMap;
// MODEL object
    GmaThresholdParameter gmaThresholdParameters = new GmaThresholdParameter();
   .....
   ...
   public GmaThresholdParameter getGmaThresholdParameters() {
    return gmaThresholdParameters;
}


public void setGmaThresholdParameters(
        GmaThresholdParameter gmaThresholdParameters) {
    this.gmaThresholdParameters = gmaThresholdParameters;
}

@Override
public GmaThresholdParameter getModel() {
    return gmaThresholdParameters;
} 
gmasthresholdParameterPK:

<s:select list="#session.circleIdNameMap"
  headerKey="-1" headerValue="Select Circle"
  name="id.circleId" id="selectCircleDropDown"
  onchange="findTspNameIdMap(this.value)">
</s:select>
 $.ajax({   
    type: 'POST',
    url: '/gma/findTspNameIdMap.action',
    data: 
    { 
        id.circleId: circleId,
        minNumberOc: $("[name='minNumberOc']").val(),
        minDurationOc: $("[name='minDurationOc']").val(),
    },
public class GmaThresholdParameter implements Serializable {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private GmaThresholdParameterPK id;
   //getter/setters of id
public class GmaThresholdParameterPK implements Serializable {

    private static final long serialVersionUID = 1L;

    @Column(name="CIRCLE_ID")
    private int circleId;

    @Column(name="TSP_ID")
    private int tspId;

    private String flag;
   //getter/setters
public class ConfigureTspThresholdAction extends ActionSupport implements SessionAware, ModelDriven<GmaThresholdParameter>{

    private Map<String,String> circleIdNameMap;
// MODEL object
    GmaThresholdParameter gmaThresholdParameters = new GmaThresholdParameter();
   .....
   ...
   public GmaThresholdParameter getGmaThresholdParameters() {
    return gmaThresholdParameters;
}


public void setGmaThresholdParameters(
        GmaThresholdParameter gmaThresholdParameters) {
    this.gmaThresholdParameters = gmaThresholdParameters;
}

@Override
public GmaThresholdParameter getModel() {
    return gmaThresholdParameters;
} 
动作类:

<s:select list="#session.circleIdNameMap"
  headerKey="-1" headerValue="Select Circle"
  name="id.circleId" id="selectCircleDropDown"
  onchange="findTspNameIdMap(this.value)">
</s:select>
 $.ajax({   
    type: 'POST',
    url: '/gma/findTspNameIdMap.action',
    data: 
    { 
        id.circleId: circleId,
        minNumberOc: $("[name='minNumberOc']").val(),
        minDurationOc: $("[name='minDurationOc']").val(),
    },
public class GmaThresholdParameter implements Serializable {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private GmaThresholdParameterPK id;
   //getter/setters of id
public class GmaThresholdParameterPK implements Serializable {

    private static final long serialVersionUID = 1L;

    @Column(name="CIRCLE_ID")
    private int circleId;

    @Column(name="TSP_ID")
    private int tspId;

    private String flag;
   //getter/setters
public class ConfigureTspThresholdAction extends ActionSupport implements SessionAware, ModelDriven<GmaThresholdParameter>{

    private Map<String,String> circleIdNameMap;
// MODEL object
    GmaThresholdParameter gmaThresholdParameters = new GmaThresholdParameter();
   .....
   ...
   public GmaThresholdParameter getGmaThresholdParameters() {
    return gmaThresholdParameters;
}


public void setGmaThresholdParameters(
        GmaThresholdParameter gmaThresholdParameters) {
    this.gmaThresholdParameters = gmaThresholdParameters;
}

@Override
public GmaThresholdParameter getModel() {
    return gmaThresholdParameters;
} 
public类ConfigureTspThresholdAction扩展了ActionSupport实现了会话软件,模型驱动{
私有地图circleIdNameMap;
//模型对象
GmaThresholdParameter gmaThresholdParameters=新的GmaThresholdParameter();
.....
...
公共GmaThresholdParameter getGmaThresholdParameters(){
返回阈值参数;
}
公共void设置阈值参数(
gmaThresholdParameters(gmaThresholdParameters){
this.gmasthresholdParameters=gmasthresholdParameters;
}
@凌驾
公共阈值参数getModel(){
返回阈值参数;
} 
如何设置与
id
对应的属性?为什么会在Firebug中出现错误

为什么在Firebug中出现错误

因为下面的语句后面有一个逗号

minDurationOc: $("[name='minDurationOc']").val(),

我检查了我的代码,没有在代码的末尾加上“,”,但它仍然给出了错误。是否确定id.circleId:circleId有效?struts是否能够在AJAX中选择getter?错误是“缺少:(冒号)在id之后的id.cricleId:circleId'处。因此它在id之后需要一个冒号。id.anthying:xyz是否实际起作用?
id.circleId
应该用引号括起来,没有它,这样的名称无效。