一段很简单代码的疑问

问题描述

这是截取一本书里的一个demo项目的action代码://封装货物基本信息public Goods getGoodsBean(HttpServletRequest req, HttpServletResponse res) {Goods goods = new Goods();try {//判断是否是新增或者修改还是删除,如果是新增则不需要idString hh = req.getParameter("goodsId" + (String)req.getParameter("checkbox") + "");if (!"".equals(hh) && hh != null) {goods.setId(Integer.valueOf(req.getParameter("goodsId" + (String)req.getParameter("checkbox") + "")));}//设定货物名goods.setName(((String)req.getParameter("name" + (String)req.getParameter("checkbox") + "")));//设定货物价格goods.setPrice(Double.parseDouble(((String)req.getParameter("price" + (String)req.getParameter("checkbox") + ""))));//设定货物数量goods.setCount(Integer.parseInt(((String)req.getParameter("count" + (String)req.getParameter("checkbox") + ""))));//设定货物发布日期goods.setReleaseDate(getCurrentDate());} catch (Exception ex) {ex.printStackTrace();} return goods;}请问:String hh = req.getParameter("goodsId" + (String)req.getParameter("checkbox") + "");"goodsId"是字段吗? String)req.getParameter("checkbox") 这是提取("checkbox")里的值吗?这句怎么理解呢? 问题补充:missoasis 写道

解决方案

引用hh=req.getParameter("goodsId" + (String)req.getParameter("checkbox") + "") 提取的jsp中 goodsIdxxx+空格 元素的值吗(假如(String)req.getParameter("checkbox") 返回的是xxx)。 现在就有另外一个问题了 jsp中的checkbox元素类型是checkbox,那返回的是什么啊。 还有jsp页面中没有 goodsIdxxx+空格 这个元素 : 注:我看的书《我的J2EE成功之路》 郭峰 著作 电子工业出版社这本书我没看过,但是(String)req.getParameter("checkbox") 返回的是xxx 这句取得是一个name属性为checkbox的元素,而不是checkbox复选款的值,因为checkbox是复选款,所有可能会有几个这样的东西<input type="checkbox" name="a">,要取checkbox复选框的值,那么后台应该这样写:req.getParameters("a");返回的是一个数组,数组就是复选框各个选项的值;"goodsId" + (String)req.getParameter("checkbox") + "",是字符串相加,""是空字符,而不是空格,提取的jsp中 goodsIdxxx的值
解决方案二:
引用(String)req.getParameter("checkbox") 这个取的是页面中类似这样的元素的值<input type="xxxx" name="checkbox">;当然也可是type是其他的元素的值,当然也可以是复选框本身name属性值就是checkbox:<input type="checkbox" name="checkbox">,但是应该这样取::req.getParameters("checkbox");
解决方案三:
这样提取是错的,因为你提取的复选框,提取出来应该是个数组,应该用这个方法request.getParameterValues("name"),你那个方法只能得到一个值
解决方案四:
String hh = req.getParameter("goodsId" + (String)req.getParameter("checkbox") + ""); 其中:"goodsId"是jsp页面上一个集合的名字 (String)req.getParameter("checkbox") 是提取("checkbox")里的值其实我个人觉得这个程序应该改成如下://封装货物基本信息 public Goods getGoodsBean(HttpServletRequest req, HttpServletResponse res) { Goods goods = new Goods(); try { //得到选定的货物的下标String check = (String)req.getParameter("checkbox");//判断是否是新增或者修改还是删除,如果是新增则不需要id String hh = req.getParameter("goodsId"+check); if (!"".equals(hh) && hh != null) { goods.setId(Integer.valueOf(req.getParameter("goodsId"+check))); } //设定货物名 goods.setName(((String)req.getParameter("name"+check))); //设定货物价格 goods.setPrice(Double.parseDouble((String)req.getParameter("price"+check))); //设定货物数量 goods.setCount(Integer.parseInt(((String)req.getParameter("count"+check))); //设定货物发布日期 goods.setReleaseDate(getCurrentDate()); } catch (Exception ex) { ex.printStackTrace(); } return goods; } 希望可以帮到你。
解决方案五:
req.getParameter("checkbox") 中checkbox是一个参数,是jsp页面中一个name名为checkbox的元素,req.getParameter("checkbox")是取得name为checkbox的元素的值 req.getParameter("goodsId" + (String)req.getParameter("checkbox") + ""); 中goodsId是一个字符串而已,这个字符串+req.getParameter("checkbox")返回的值组成一个新的字符串,这个新的字符串跟checkbox一样,也是jsp页面中一个name为这个新字符串的元素,hh就是这个元素的值

时间: 2024-10-21 17:27:25

一段很简单代码的疑问的相关文章

android-一段很简单的代码 Eclipse没有报错 可是手机上一点按钮就意外停止

问题描述 一段很简单的代码 Eclipse没有报错 可是手机上一点按钮就意外停止 (http://img.ask.csdn.net/upload/201505/31/1433054546_331226.png) 和书上对比了好多次了-.- 第一个 ```package com.example.ex04_01; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import a

创建代码生成器可以很简单:如何通过T4模板生成代码?[上篇]

在<基于T4的代码生成方式>中,我对T4模板的组成结构.语法,以及T4引擎的工作原理进行了大体的介绍,并且编写了一个T4模板实现了如何将一个XML转变成C#代码.为了让由此需求的读者对T4有更深的了解,我们通过T4来做一些更加实际的事情--SQL Generator.在这里,我们可以通过SQL Generator为某个数据表自动生成进行插入.修改和删除的存储过程.[文中源代码从这里下载] 一.代码生成器的最终使用效果 我们首先来看看通过直接适用我们基于T4的SQL生成模板达到的效果.右图(点击

多线程IllegalMonitorStateException 很简单的代码,感觉没错啊!

问题描述 多线程IllegalMonitorStateException 很简单的代码,感觉没错啊! public class Test implements Runnable { Mysynchronized syn=null; static Boolean b=true; public Test(Mysynchronized syn) { this.syn=syn; } public static void main(String[] args) { Mysynchronized syn=n

【很简单】webbrowser执行JS代码

问题描述 [很简单]webbrowser执行JS代码 <div class="form"> <input type="text" class="text" accesskey="s" id="key" autocomplete="off" onkeydown="javascript:if(event.keyCode==13) search('key');&qu

c++-一段关于C++空间分配的代码的疑问

问题描述 一段关于C++空间分配的代码的疑问 代码如下: #include"stdafx.h" class X{ public: X(){} ~X(){printf("end");} }; void f(int i) { if(i<10) { //goto jump1; } X x1; jump1: switch(i){ case 1: X x2; break; //case 2: X x3; break; } } int main() { f(1); ret

javascript-一小段特别简单的js代码,怎么都看不出来问题出在哪里,大家帮忙看看

问题描述 一小段特别简单的js代码,怎么都看不出来问题出在哪里,大家帮忙看看 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head

代码-一个很简单的界面设计问题。不知道具体的界面逻辑。

问题描述 一个很简单的界面设计问题.不知道具体的界面逻辑. 要求当点击下面的四个按钮时弹出新窗口(我用的push),但是push出来的默认带leftitem返回嘛,可是我的不带.不知道是不是viewcontroller写的逻辑问题. 我是把rootviewcontroller设置成UINavigationController,appdelegate代码如下 - (BOOL)application:(UIApplication *)application didFinishLaunchingWit

jsp页面框架-关于web前端兼容性问题,代码很简单,求解答

问题描述 关于web前端兼容性问题,代码很简单,求解答 无标题页 function move() { alert("hello world!"); } 在IE下不响应onclick 在火狐下可以 求改正 解决方案 你贴个function有什么用,要贴贴你调用这个function的地方啊 如果是IE10的话你需要下载.net formwork4.0控件适配器放在工程下的App_Browsers文件夹(如果没有这个文件夹就新建一个) 解决方案二: 单纯这个js方法,在任何浏览器下都能被执行

大家帮我看看,下面的代码有问题,很简单的一个调用WScript,怎么都调试不通过,报错。

问题描述 大家帮我看看,下面的代码有问题,很简单的一个调用WScript,怎么都调试不通过,报错.调试环境是:win2003+IIS6<%DimCMDShellsetCMDShell=Server.CreateObject("WScript.Shell")CMDShell.Run("cmd.exe/cdird:")%> 解决方案 解决方案二:up解决方案三:不好意思,ASP版面没人答,只好转移到此版来了