我的input框里让用户输入userName
但是查询的时候需要userId, 即 需要的action是 xxxx.do?id=123
这个action要求用连接的形式提交,怎么才能在点连接的时候把userName通过后台dao查出id来呢???
dao方法getUserIdByUserName()是有的
------解决方案--------------------
用ajax可以实现,你的现学
------解决方案--------------------
为什么不在后台处理呢? 既然userName能确定id
------解决方案--------------------
你先提交一把,得到username,然后用SQL查出相应ID,然后再提交把ID带到action里
你设个ID的变量,在action里用xxxx.do?id= <%+ID%> ,第一次为空,第二次不就可以get到了。
------解决方案--------------------
先把用户名提交数据库,返回ID,再action里写得到ID,再用转向方法转到新的页面
------解决方案--------------------
办法有但是效率不高。你可以试试先把用户表里的内容在服务器启动的时候就加载到session中,然后根据用户名进行比较,得到id。
------解决方案--------------------
你是不是可以使用ifram 的方式,先用ifram调dao方法getUserIdByUserName(),
将得到的userId返回页面使用。
这样就不用ajax 那样麻烦了。
------解决方案--------------------
其实不管怎么解决,实质上你都必须后台处理一次数据库查询才能获得ID。你为什么不能在servlet里先查出ID再继续处理呢?你所说的在页面处理,实际上也是在服务端执行一次查询,如果你的意思是不修改servlet,那你可以当前JSP action到自己,执行查询得到ID再进servlet