struts2中的actions接收不到前台form表单的值

使用struts标签提交

<s:form action="student_action" method="post">
<s:textfield label="用户名" name="name"></s:textfield>
<s:password label="密码" name="password"></s:password>
<s:password label="重复密码" name="repassword"></s:password>
<s:submit value="提交"></s:submit>
</s:form>
action
@Component("student_action")
@Scope("prototype")
public class StudentAction extends ActionSupport {

private StudentDAO sdao;
private String name;
private String password;
private String repassword;

public StudentDAO getSdao() {
return sdao;
}
@Resource
public void setSdao(StudentDAO sdao) {
this.sdao = sdao;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getRepassword() {
return repassword;
}

public void setRepassword(String repassword) {
this.repassword = repassword;
}

@Override
public String execute() throws Exception {
System.out.println(name);
System.out.println(password);
System.out.println(repassword);
if(name!=null&&password.equals(repassword)){
System.out.println(2);
sdao.addStudent(name, password);
return Action.SUCCESS;
}else{
return Action.ERROR;
}
}
}
前台打印三个值全是null,怎么接收不到呢?

<s:form action="student_action" method="post">这句话里的

action属性的值,要根据Struts2的配置文件struts.xml里的设置来定:

比如struts.xml里是这样的:

...
<action name="student_action123" value="student_action"/>
...

那么页面里就应该写(假设是struts缺省包和默认命名空间):

<s:form action="student_action123.action" method="post">

也就是说,提交表单时的目标是配置文件中action的name属性决定的。


加不加.action后缀,可以看struts.xml里的配置常数

<constant name="struts.action.extension" value=",action"/>

来定,如这个设置就是加不加后缀都可以(好像是struts2的高版本都默认可以不加后缀)。

温馨提示:内容为网友见解,仅供参考
无其他回答

struts2 整合spring时,action死活接收不到form表单提交的参数。
把你的struts的配置贴上来。如果你配置没错的话form的action应该是\/user\/user.action

Java:Struts2接收不到表单的value值。
这句话里的action属性的值,要根据Struts2的配置文件struts.xml里的设置来定:比如struts.xml里是这样的:那么页面里就应该写(假设是struts缺省包和默认命名空间):也就是说,提交表单时的目标是配置文件中action的name属性决定的。

struts2后台如何获得前台form中的内容?
新建一个Action 声明一些成员变量 变量的名称和form表单的name属性相同就可以了 还有你说的struts1中那种获取参数的方式也落伍了 多学习学习吧

struts2中action里定义实体,User user;get,set。表单提交数据的时候在ac...
检查struts配置文件 检查表单值与action属性值的set方法是否对应。由于你未贴出jsp代码。无法为你进行下一步沟通。

struts2里前台表单提交到action时总是会报NoSuchMethodException的异 ...
java.lang.NoSuchMethodException: setIdx([Ljava.lang.String;)前面 加个 L 的,代表是数组,你是不是属性放多了??

form表单提交action 如何接收
struts2中的Action接收表单传递过来的参数有3种方法:如,登陆表单login.jsp:<form action="login" method="post" name="form1"> 用户名:<s:textfield name="username"\/><br\/> 密 码:<s:password name="password"\/><br\/> <s:submit value="提交"\/> <\/form> 1.在Action类中定义表单...

Struts2用Ajax提交报错ognl.NoSuchPropertyException
你action里面接收参数的方法跟JQ传参数的方法没对应,首先你页面input里面的name是用对象.参数,这个是要用form表单提交,后台才能用对象接受,现在你JQ里面使用的jsondata,相当于只是传了2个值过去而不是对象,现在你在action中在定义对应的2个私有个账号密码,看看是不是有值,你有2个选择后台会获取到...

struts2的问题始终调不到Action,在线等帮忙看一下;
1、你的web.xml的Struts拦截配置改为\/ 2、你的action里面的方法错了,亲,返回值你还写成list的类型,大神,返回值为String类型,你的。你的action继承ActionSupport了没,你把return的返回值改为SUCCESS或者ERROR或者INPUT

strus2 的action类中定义同名变量,为啥能自动获取jsp的参数
你在web.xml中可以看到我们配置了struts2的filter,在你访问一个页面的时候(比如manage\/userAdd.action),这个filter会截取到你的url路径,同时调用sequest.getParameter("xxx(变量名)")来获取你表单上的参数比如username,这是会根据你的配置信息和url new一个对应的userAction 并调用userAction中的set...

怎么在java的action中获取form表单中的数据
1.首先设置 表单中的数据的name值 如:<input type="text" name="username" value=""> 2.你用的是struts2,那么就在java类中写一个变量:变量名和页面上的name值一直 并有这个变量的get 和set方法 ,这样就能取到值了。希望对你有帮助 ...

相似回答