为什么Action中得不到form表单中的值

jsp页面:
<select name="imgType" >

action:
String imgType = String .valueOf(request.getParameter("imgType"));
System.out.println("imgType=="+imgType);

打印出来的:
imgType==null

哪位高手解决下。
我用了隐藏表单域:
<input type="hidden" name="imgType" value="asdf"/>
form:
public class ImgType extends ActionForm{
private String imgType;
//下面省略getter和setter方法
}

action:
ImgType img = (ImgType)form;
System.out.println(img.getImgType());
但是抛空指针异常:
Unhandled Exception thrown: class java.lang.NullPointerException

======================================
我配置了,不知道是什么问题,还是抛空:
<form-beans>
<form-bean name="imgForm" type="com.yitong.app.form.ImgType">
</form-bean>
</form-beans>

<action name="imgForm" parameter="action" path="/biz01/T0106" scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="add" path="/pages/01/06/010601_A.jsp" />
</action>

不知道你用struts哪个版本。
如果你用struts2的话。只有作为参数传递到action中的才能用request.getParameter取值。
否则你要在action中加全局变量imgType,并且实现这个变量的get和set方法(主要是set方法)。这样就能取到了。struts2会自动把其值通过set方法设置过去。然后你直接使用变量就行了。

struts1的话,要在ActionForm里加入这个变量的,也要实现get set方法
==================
我上面说了,需要在ActionForm里加变量的,这是struts要求的。
表单
<form>
<!-- 这个hidden就是默认一个值,页面不显示,后台可以拿到这个值 -->
<html:hidden property="username" value="1"/>
</form>
一个与之对应的form类
public class UserForm extends ActionForm{
private String username;
//下面省略getter和setter方法
}
在action的方法中
其有参数ActionMapping mapping, ActionForm form
UserForm testForm = (UserForm ) form;
testForm.getUsername(); //这样就可以拿到值。
// 如果不这样做,你只能加到action后的参数里。
======================================
你应该没在struts-config.xml配置
<form-beans>
<!-- 这里加了没 ? -->
<form-bean
name="UserForm"
type="包.UserForm "> 全路径
</form-bean>
</form-beans>

然后action配置,主要加name那点。也可以name="包.UserForm",就不需要写上面的form-bean了
<action path="你原有的" name="UserForm" type="你原有的" 其余不变
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-13
按照如下步骤检查一下:
1.<select>表单是要设<option value="">的
2.select 的名字需要和form中的一样。
3.在struts-config.xml中要指定action的属性name和form的对应关系
是否转型要看你的form中定义的select 名字是什么类型的一般,都为String类型本回答被网友采纳
第2个回答  2010-12-13
你页面上的select也没有设置value啊?自然是没有value传输过来的。
第3个回答  2010-12-13
String imgType = String .valueOf(request.getParameter("imgType"));
没必要转型,从页面传过来的值都是String 类型的
String imgType = request.getParameter("imgType");
相似回答