form表单提交与Struts2框架中Action的问题

form表单如何提交到某个namespase下的Action上?
如下报错
form表单的action熟悉设置为"/XXXspase/UserLogin.action"
对应的sturts2配置为<*********,namespace="/XXX">
<action name="UserLogin" *****>
错误信息差不多这个意思:
There is no Action mapped for namespace / and action name XXXXX. - [unknown location]

如果设置struts2的namespace="/",
修改form的action属性为"UserLogin.action"就能正常运行。

程序指在学习struts2,用Action类的属性获取jsp登录页面的输入,并根据输入跳转到不同的视图,如welcome视图,regist视图。用Struts2默认的命名空间处理不会出问题,一加命名空间就不知该怎么改了,求各位大侠帮忙

form表单的action应该设置为设置为"UserLogin.action",拦截器就是按照Action名称去拦截的,因此,这里不能加上包名,应该写你在struts.xml中配置的那个Action类的名称即可,可以不加.action。

错误信息就是找不到这个Action类的意思。
There is no Action mapped for namespace / and action name XXXXX. - [unknown location]

配置文件中,你需要配置这个Action类,首先为它取一个名字,一般就叫“UserLogin.action”,然后为它指定具体的类,也就是告诉Struts,你的这个Action由那个类来进行处理。例如:
<!-- 登陆action -->
<action name="Login" class="struts2.LoginAction" >
<result name="input">index.jsp</result>
<result name="success">success.jsp</result>
</action>
这个配置就是说,Action动作的名字是Login,由struts2包下的LoginAction类来处理。

建议你去看《Struts 2实战》这本书讲的特别清晰易懂。追问

如果有某个Action。配置文件如下

视图1路径
视图2路径

这时,在登录页面jsp中,form action写成UserLogin或UserLogin.action都会报错的。如果指定,我只能在命名空间1下操作,怎么办

追答



这句话中就不要写namespace了,不做namespace限制。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-13
你的命名空间是 namespace="/XXX" 那你form表单中的action应该是
action=XXX/UserLogin.action 最前面没有 / 因为struts2的web.xml 的核心控制器里的
url-pattern 是/* 就是所有的action 都是以/开头 所以表单中的action 属性 = 命名空间/ Action名字.后缀
第2个回答  2012-11-22
如果命名空间是/xxx,那你页面的URL就这么写:/xxx/UserLogin
第3个回答  2012-11-22
action的name属性一定要和form的name属性一致才行
第4个回答  2012-11-22
你好,我Q450827533,把你的工程发给我,我帮你看看

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

form表单提交action 如何接收
1.在Action类中定义表单属性,两者属性名称必须一致。提供setter,getter方法。即可接收到表单传过来的参数.这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action类中充斥着setter,getter方法,程序结构不是很美观。2.把表单传递过来的参数封装成一个类,然后调用...

...整合,Action里有多个方法,Struts.xml中Action的name该怎么配,jsp...
你可以使用通配符的形式在struts.xml中定义如下action :<action name="xxxHandleAction_*" class="xxxHandleAction" method="{1}">...在form表单提交的时候可以采用<form name="form1" action="\/xxx\/xxxHandleAction_addxxxHandle.action" method="post"><\/form>这里就会自动匹配到你定义的Action中...

...整合,Action里有多个方法,Struts.xml中Action的name...
回答:你可以使用通配符的形式在struts.xml中定义如下action :<action name="xxxHandleAction_*" class="xxxHandleAction" method="{1}">...在form表单提交的时候可以采用<form name="form1" action="\/xxx\/xxxHandleAction_addxxxHandle.action" method="post"><\/form>这里就会自动匹配到你定义...

struts2问题 form action="${ctx }\/login.action"
{ctx}是使用的el表达式,获取的是项目的http路径,你可以查看一下你的项目,是否它是把该路径ctx取出放到session或者actioncontext或者是放到action的基类里面了,至于通过action找到哪个action,你在struts配置文件中查找那个form所对应的name就可以找到 ...

java中,jsp表单提交form的时候,传到后台方法的参数问题
strust2技术,前台控件名 bean.属性名比如:user.name1 user.age等,在struts2中的action中成员变量private User user;再给它set get方法。这样当前台提交时自动将属性值name1 age等赋给user

struts2一个form表单提交往数据库存数据,action中设置的属性打印能获...
你把控制台的错误日志贴出来吧 没进入save方法 那就是你的上一句代码就有问题

form表单的数据怎样提交到后台java?jsp的action应填什么?比如类是Stude...
<s:form action="add"><\/form> action 调用dao中的方法,把add方法写在dao中,然后再配置struts.xml public class AddAction extends ActionSupport{ private Student student;private List<Student> students;public List<Student> getStudents() { return students;} public void setStudents(List<...

struts2的action调用问题
你应该深刻了解一下这三个框架整合的运行机制。也不是一句两句能讲的明白的,临时先帮你解决你问的问题吧·与其说两个action不如说是两个action里的方法。那暂且就是说是两个action吧。运行某个action后会转到相应的jsp页面,在跳转的过程中会有List或其他的值传到jsp,做相应的显示。所以在action里把...

关于struts2表单提交后Action处理的一些问题
Struts是调用Action的set题目标号()函数把请求传递过来的参数注入到action的对应属性中,你每道选择题的radio的name值都不一样,要作为一个数组接收的条件是name属性一致,所以你可以在action端手动的将接收到的参数装到List中

相似回答