根据我几天前发布的问题 ,我意识到SimpleFormController不适合处理Ajax请求。 因此,我正在将我的应用程序迁移到带注释的控制器。
我正在尝试使用Spring MVC 3.0.2和Hibernate通过Ajax使用Jackson 1.9.8 (其下载页面 )从Oracle数据库返回java.util.List ,但我还没有在任何技术中使用JSON。 我已经阅读了一些教程/文章,但我无法理解如何返回这样复杂的数据结构并在Spring中使用JSON解析它们。 我首先尝试学习类似JSON的概念。
基本上我正在尝试的是当从国家选择框中选择国家时,应该通过Ajax从数据库填充与该国家相对应的州。 我不知道如何通过Ajax响应返回java.util.List ,如何解析它并在Java代码中再次使用它。 我只达到以下水平。
JS代码。
function getStates(countryId)
{
$.ajax({
datatype:"json",
type: "POST",
url: "/wagafashion/ajax/TempAjax.htm",
data: "countryId=" + countryId,
success: function(response)
{
$('#msg').html(response);
$('#stateList').val('');
},
error: function(e)
{
alert('Error: ' + e);
}
});
}
Spring控制器类中的方法,当在国家/地区选择框的onchange事件上发出Ajax请求时调用该方法。
@RequestMapping(method=RequestMethod.POST, value="ajax/TempAjax")
public @ResponseBody List getStateList(@ModelAttribute("tempBean") TempBean tempBean, BindingResult error, Map model, HttpServletRequest request, HttpServletResponse response)
{
Session session=NewHibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Listlist=session.createQuery("from StateTable where country.countryId=:countryId order by stateId").setParameter("countryId", new BigDecimal(request.getParameter("countryId"))).list();
session.flush();
session.getTransaction().commit();
return list;
}
状态选择框我需要使用EL的循环填充Ajax响应返回的状态列表。
Select
${row.stateName}
${row.stateName}
我只能成功地进行Ajax请求和响应。 通过互联网找到的那些教程我无法理解。 更确切地说,如何在前面的循环的items属性中使用Ajax响应,例如items="${stateList}" ?
你能给我一些提示/想法如何返回数据列表并在前面的循环中使用它来填充状态选择框? 你能告诉我一些从这里开始的事吗?
我正在使用NetBeans 6.9.1(而不是Eclipse)。 在一些关于Eclipse中Marvan项目的教程中,提到了pom.xml文件需要配置为包含 (Jackson依赖)。 在我的NetBeans项目中没有像pom.xml这样的东西。 是否需要在NetBeans中的某个xml文件中配置某个位置,例如此处提到的那个?