我在前台有几个字段,通过ajax提交到action中,在action中有一个实体bean对象,要提交的字段都是这个实体对象的属性,请问struts怎么自动把这些属性通过该对象的setter方法自动注值?实体对象是如下的topic,另外还有一个key,我也希望能通过它的setter方法将其值自动注入,现在的问题,实体对象topic的属性值没有注入,key的值也没有注入。我不知道哪里出错了,拜求各位高人给看一下!谢谢!
- Java code
public class TopicAction { private TopicService topicService = null; private Topic topic = null; private String key = null; private List<File> files; public void setTopicServoce(TopicService topicService) { this.topicService = topicService; } public Topic getTopic() { return topic; } public void setTopic(Topic topic) { this.topic = topic; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public List<File> getFiles() { return files; } public void setFiles(List<File> files) { this.files = files; } public TopicAction(){ } public void post(){ //HttpServletRequest request = ServletActionContext.getRequest(); System.out.println(key); topicService.pubTopic(topic, files, key); } }
下面是前台代码,其中fid、author、title、content是上面topic对象中的字段,key是单独的字段
- JScript code
$.ajax({ url:'forum/postTopic.action', type:'post', data: { fid:1,author:'ljg',title:'test',content:'content',key:'ko'}, async :true, success:function(data) { if(data=='success'){ alert('成功!'); } } });
------解决方案--------------------------------------------------------
也可以采用data:{'topic.id':1,'topic.name':'休闲鞋'}由于js中定义对象的属性不能有.的存在所以这里需要用引号,这样的话你aciton中就可以得到topic对象的值了,