我是angularjs和客户端的新手,我正在为一个使用struts 1.3作为其框架的旧应用程序添加一个新页面。我想在前端使用angularjs。
我知道如何通过将json写入前端并返回null来为动作类返回json。但是,我不清楚如何在get之后填充控制器中的范围变量。如果我在控制器中使用get并让json返回,我的actionform如何适应所有这些?它有用吗?如果我想将新值发送回我的操作,我可以为同一个控制器获取和发布吗?而且,我可以使用以下变量:$ scope.items = {} $ scope.items.name = “” $ scope.items.email = “” 如果我不能以某种方式使用表单,那么只需将json.stringify(items)作为我的数据发送到帖子中?谢谢你的时间。到目前为止,我还没有找到使用带有struts 1.3的angularjs的更多信息。
答案:我会尽量回答我得出的结论,但上面的问题非常模糊,因为我真的不知道我在说什么,我的立场是什么我工作的公司已经结束,所以我不再能够访问该代码。我之前想要问的是我将如何处理我通常用于struts操作的动作表单以及如何在帖子中从前端获取数据到我的动作类?我发现我通常的动作形式对于我想要做的事情是没用的,所以我摆脱了它并在get中编写了一个json对象,它将在前端修改并在我发布时传回另一个动作。这就像'whateverAction.do'的普通帖子一样,但我必须配置我在帖子中发送的数据,并将其命名为。然后,我使用request.getParameter(“jsonObjName”)拾取修改后的json对象,并将其解析为json对象中每个对象的不同LinkedHashMap对象。我认为如果你使用的是JavaEE,你可以使用JSONObject类而不是LinkedHashMap进行解析,但我使用的是SE,所以我无法访问这个项目中的那些。这里是我用于帖子配置的另一个页面的链接:
答案 0 :(得分:2)
在java方面,你也可以尝试使用Gson库,它允许你在json中解析字符串,但struts1通常不能很好地适应angularjs,如果你删除java方面的表单,而不是make保持struts1毫无意义。如果没有可能删除struts1,那么只需保留现有功能的struts1并开始使用struts2来应用angularjs的新屏幕。这将更加容易,因为来自angular post的json将自动绑定到必须与json属性格式和名称匹配的bean对象。