Java 在Struts 2中使用ModelDriven访问POJO属性?
我在Struts2中使用了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
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
应该用引号括起来,没有它,这样的名称无效。