用Button调用JSP/Servlet
2015-07-10 17:01
615 查看
用Button调用JSP/Servlet
分类: J***A2009-11-1119:29 3603人阅读 评论(0) 收藏 举报
buttonactioninputdeleteservlet服务器
最后一次J2EE作业,被第二小题虐得欲死欲仙,说到底就是被两个问题折腾了,一个是JPA,另一个就是如何在JSP中通过Button调用JSP/Servlet。
在网上的无数中英文帖子间寻找答案时,有一个帖子让我印象深刻。帖子是这么说的:点击button是一个客户端的动作,调用JSP/Servlet是服务器做的事,你不可能直接让客户端调用JSP/Servlet,所以唯一的方法就是使用表单的提交按钮,在action中输入get格式的url。
由此可见对于概念的掌握是非常关键的。
得到了这个提示立刻试了下:
[xhtml] view
plaincopy
<form method="get" action="DeletePerson?id=${person.id}" >
<input type="submit" value="delete" />
</form>
结果很诡异的事情发生了,无论我怎么设置,点击button后地址栏中都只有DeletePerson,设置中断Debug也确认id的值确实没有通过request传进Servlet。
研究了很久,终于发现,原来服务器在处理?x=k格式的action时,会到form内部去找name为"x"的input组件,并把该组件的value放到k的位置,如果没有找到name为"x"的input组件,就会忽略这一项。
于是设置了一个隐藏文本框,将name和value设置为想要的值,当然这时候action中的传参部分可以删掉了
[c-sharp] view
plaincopy
<form method="get" action="DeletePerson" >
<input type="hidden" name="id" value="${person.id}"/>
<input type="submit" value="delete" />
</form>
其实这个时候完全可以把method设置为post,一样可以正常工作
当然,如果并不强调使用Button组件来调用JSP/Servlet的话,完全可以直接写个链接:
[xhtml] view
plaincopy
<a href="DeletePerson?id=${person.id}" mce_href="DeletePerson?id=${person.id}">Delete</a>
相关文章推荐
- 【js事件详解】js事件封装函数,js跨浏览器事件处理机制
- JS+file控件实现图片的上传和预览
- JSP和Servlet的中文乱码处理
- javascript 原生态 checkbox 操作
- js之上翻隐藏
- Javascript 模块化概述
- 表单序列化 js
- Jsoncpp编程接口及使用方法简介
- 由json字符串生成C#实体类的工具
- javascript + css 原生态弹出层
- js变量以及其作用域详解
- ArcGIS for js API 3.10
- js判断文件上传大小,兼容FF IE CHROME
- javascript重置Radio单选按钮
- EL与JSTL
- JS 学习记录
- json格式封装,以及格式转换
- 原型prototype -- 深入理解javascript
- jsp页面使用 jstl,出现 Unknown tag (c:foreach)
- js RegExp 替换括号