struts jquery json 提交表单

baykermr 2009-08-22 08:49:35
我这样做行吗?

</head>

<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#btnsub").click(function(){
var josn = {"name":$("#uName").attr("value"),
"pwd":$("#uPwd").attr("value")};
$.ajax({
type:"post",
url:"user.do?medth=testjoson",
data:josn,
succss:function(msg){
alert(msg);
}
});
})
})
</script>
<body>
<form action="">
用户名:<input type="text" id="uName"/><br>
密码:<input type="text" id="uPwd"/>
<input type="button" id="btnsub" value="提交"/>
</form>
</body>



这样提交到,Action了,请问我要在UserAction的testjoson方法获取提交过来的json应该怎么做呢?
要想把提交过来的JSON对象直接转换成对象该怎么做呢?


...全文
1366 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
小土bibox 2011-08-21
  • 打赏
  • 举报
回复
学习了。struts1和struts2差别还是很大德
spp_1314 2010-07-19
  • 打赏
  • 举报
回复
楼主。 如果关于页面的值 太多,怎么给他封装对象啊
yjailj 2009-08-23
  • 打赏
  • 举报
回复
之前在公司 ,有人跟我谈起过 struts 1 的这种很奇怪的方式,我那时候就觉得挺郁闷,对于后台来说,前台能够了解到的东西,是越少越好,因为 "所有的输入都是罪恶的" ,也是为了安全的考虑

struts 1 倒好,用一个 地址栏参数 method= 或 ! 指定 方法名,乍一想可能还蛮好,可你不觉得这样很不安全吗

如果我把 method 后面的方法一改,我也不知道 struts 1 有没有 <default-action-ref name="index" /> 这么一个设置,如果没有,服务器会怎么样? 我也不知道

我知道 在 2 里面是可以使用通配符,且在配置文件中 指定 method

抱歉, struts 1 不熟,所有也没办法告诉你有什么其他的方法,只是说出我的一点想法,觉得不好
baykermr 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yjailj 的回复:]
LZ 的思路很古怪啊,都是在页面处理 获取 后台的json 数据再做相应的转换,你却刚好相反

$.ajax({
    type:"post",
    // 看到这种 方式我就觉得可怕,客户端能知道我在后台用的什么方法, !!!少用地址栏传参!!!
    url:user.do?medth=testjoson,

[/Quote]
谢谢,看了你的回复,知道了很多,
你说不用这种传参,那是定义一个隐藏域?设置它的name,value来指定调用后台的方法吗?还是用其他什么方法啊?
gzchenbing 2009-08-23
  • 打赏
  • 举报
回复
up
yjailj 2009-08-23
  • 打赏
  • 举报
回复
LZ 的思路很古怪啊,都是在页面处理 获取 后台的json 数据再做相应的转换,你却刚好相反

有必要吗 ? 前台不管多大的数据,你序列化一下,不就行了

// struts 1 的东西 &^%$#$%^
var data = $(form).serialize();
// jquery 已经封装得很好了,可以直接用 $.post 或 $.get ,当你有更复杂的需要的时候再用 $.ajax
$.ajax({
type:"post",
// 看到这种 方式我就觉得可怕,客户端能知道我在后台用的什么方法, !!!少用地址栏传参!!!
url:user.do?medth=testjoson,
data:data,
success:function(msg){alert(msg);},
error:function(XMLHttpRequest){alert("错误" + XMLHttpRequest.status);
}}
// 再说一句:请指定 name !!! Id 是留给前台用的, name 是给后台的.做事情不要怕麻烦!!!

这样它就会帮你序列化 form 的参数,如 uName=aaa&uPwd=bbb

aaa,bbb 是你输入的东西,这些东西都是 自动进行提交的,
baykermr 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 baykermr 的回复:]
引用 1 楼 sangshusen_1988 的回复:
你登陆例子返回对象干嘛,直接返回个true或者false,然后跳转就成了呗

不是这个意思啊,我是想从页面提交一个JSON对象到Action,想知道后台怎么把这个JSON获取到,得到页面提交过来的值。能直接把这个JSON直接转换成一个OBJ··更好
[/Quote]
怎么用啊?我下了个JSONObject.java的类,
但是直接拷贝到我的项目里有错,打成JAR包也不行样啊。
能说说具体怎么用吗?谢谢
yaoboyao 2009-08-22
  • 打赏
  • 举报
回复
先看看,有什么问题,到我学AJax的时候,好注意
palosky 2009-08-22
  • 打赏
  • 举报
回复
跟着学习
Landor2004 2009-08-22
  • 打赏
  • 举报
回复
1 jquery有ajaxform plugin 不用楼主自己去拼接字符串,它就像提交普通表单一样简单

2 json有针对于string2bean的转换支持

JSONObject o= JSONObject.fromString(json);

当然你要去下载json for java的包 http://json-lib.sourceforge.net/
baykermr 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sangshusen_1988 的回复:]
你登陆例子返回对象干嘛,直接返回个true或者false,然后跳转就成了呗
[/Quote]
不是这个意思啊,我是想从页面提交一个JSON对象到Action,想知道后台怎么把这个JSON获取到,得到页面提交过来的值。能直接把这个JSON直接转换成一个OBJ··更好
youandi79 2009-08-22
  • 打赏
  • 举报
回复
和普通的表单提交一样,UserAction对应的ActionForm中定义name,pwd就可以了。

或者data:josn改成 data : {param : $.tojson(json)}
Action中
JSONObject jsonObj = new JSONObject(request.getParameter("param"));
sangshusen_1988 2009-08-22
  • 打赏
  • 举报
回复
你登陆例子返回对象干嘛,直接返回个true或者false,然后跳转就成了呗

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧