`
clrw
  • 浏览: 21401 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

表单参数和action中定义的对象同名导致strutr2的action路径错误

 
阅读更多

项目使用的是ssh,struts是用的2。

今天做了一个很简单的意见反馈功能,就是一个提交一个textarea的内容到后台,问题来了,点击提交后后台没有反应,第一反应是action的配置可能弄错了,反复检查配置文件等等,都是正确的,于是我将请求地址直接粘贴在浏览器里访问:

http://127.0.0.1:8080/myStore/es_baseinfo_opinion/saveOpinionAction.action

 返回的是正确的json数据:

{"callbackMessage":{"messageID":"0","messageInfo":""}}

 看来可以确定配置是没有问题的,我又回到功能页面点击提交按钮,问题依旧,此时我再按上面的方式在浏览器里访问该地址,报错了:

java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [opinionAction]

 顿时觉得非常奇怪,刚开始在浏览器里访问不是正常的吗,怎么回到功能提交失败后,浏览器里直接访问也报错了呢?反复检查、替换代码后,发现页面提交表单的地方:

$.ajax({
    type: "POST",
    url: "${pageContext.request.contextPath}/es_baseinfo_opinion/saveOpinionAction.action",
    data: {"operation": "add",
               "opinion": $.trim($("textarea[name='opinion']").val())},
    ...
    后面的代码省略

 这里有一个参数是opinion,就是用户录入的意见内容,而我的action里有一个opinion对象:

@Controller("opinionAction")
public class OpinionAction extends ActionSupport implements RequestAware {
    private int total;
    private Opinion opinion;
    ...
    后面的代码省略

 现在我想应该是前台的参数opinion和后台的这个Opinion对象重名导致这个问题的出现,于是我将前台ajax提交的那段代码里的opinion改成了content,再点击功能里的提交,问题解决。

 

action里的这个Opinion其实也是为了接收前台参数的,只不过这个功能很简单我没有用到它,想不到出了这样的问题,以后我要多多注意了。

 

分享到:
评论

相关推荐

    Struts2_入门篇_基本配置_通配符_参数注入_内置对象获取等。。。

    在Action类中定义与表单字段同名的属性,Struts2会自动将请求参数值赋给这些属性。此外,Struts2还支持通过`@Param`注解来指定参数映射,使得参数注入更加灵活。 4. **内置对象获取**:Struts2提供了一系列内置对象...

    表单中有name为action的元素时,取form的属性action杯具了

    在HTML表单(`<form>`)中,`action`属性是一个至关重要的元素,它定义了当用户提交表单后,浏览器应该如何处理这些数据。通常,`action`属性的值是一个URL,指示服务器端处理数据的脚本或程序的位置。然而,如果在...

    struts2中action如何获取jsp页面参数1.rar

    本教程将详细介绍如何在Struts2的Action类中获取JSP页面传递的参数。 首先,理解Struts2的工作流程至关重要。当用户通过浏览器发送一个请求时,这个请求会由Struts2的前端控制器(DispatcherServlet)拦截。接着,...

    MVC Action

    **MVC Action 深入理解与应用** MVC(Model-View-Controller)模式是软件设计中的一个经典架构模式,广泛...在实际开发中,我们需要根据需求灵活选择Action的返回类型、参数和筛选器,以实现最佳的用户体验和性能。

    struts2 表单数据绑定map、list等.rar

    例如,表单中有多个同名的input元素,如`[key1]" />`和`[key2]" />`,提交后,'key1'和'key2'将作为Map的键,对应的输入值为值。 2. **List数据绑定**: 对于List,可以声明一个泛型List类型的属性,如`private ...

    struts2官方例子7-表单验证 xml形式的验证

    总结起来,Struts2的XML表单验证是通过创建XML文件定义验证规则,然后在Action类中处理数据,通过框架自动进行验证并返回错误信息。这种方式使得验证逻辑与业务逻辑分离,提高了代码的可维护性和复用性。对于大型...

    struts2 学习笔记 实战

    另外,域模型(Domain Model)的概念使得Action和表单数据的交互更加直观,将业务对象的实例作为Action的属性,可以方便地实现数据的封装和验证。 总的来说,Struts2的Namespace、标签和Action机制为Web应用提供了...

    20对action指定方法进行校验.zip

    例如,`@Valid` 和 `@Action` 注解可以用来标记需要进行验证的方法,而 `@Param` 或 `@FieldParam` 可以定义参数的验证规则,如非空检查、长度限制等。 2. **Interceptor(拦截器)**:Struts2的拦截器机制使得在...

    java struts2接收参数的几种方法

    在Struts2框架中,可以通过在Action类中定义与请求参数同名的属性来自动绑定请求参数。当执行Action时,Struts2会自动将请求参数与Action中的属性进行匹配和绑定,无需额外的数据类型转换。这种方式简单直观,适用于...

    struts2 接收参数

    最后,压缩包中的文件名称"Struts2_0700_ActionAttrParamInput"可能是一个关于Struts2 Action属性和参数输入的示例或者教程。这可能包含了如何配置Action、如何处理参数异常以及如何进行输入验证等内容。 总的来说...

    HTML或JSP中多个同名表单元素值的获取

    在HTML中,表单元素通常通过`<form>`标签定义,而同名的表单元素可以使用相同的`name`属性来指定。例如,我们可能会有以下这样的表单结构: ```html <form action="submit.php" method="post"> ...

    struts2学习笔记

    6. **POJO数据绑定**: Struts2支持直接使用POJO对象来处理表单数据,Action中可以直接定义与表单字段同名的属性,Struts2会自动进行数据绑定,无需像Struts1那样使用`request.getParameter()`。如果有多条数据,可以...

    关于Spring MVC同名参数绑定问题的解决方法

    在这个表单中,有两个同名参数`name`,分别用于填充`User`对象的`name`属性和`Account`对象的`name`属性。如果在Spring MVC控制器中声明如下方法: ```java @RequestMapping("/test.action") public void test...

    Struts2例子7

    除了在`struts.xml`中配置,还可以在Action类同名的`strut2-validation.xml`文件中定义验证规则。这个文件包含了Action类的属性及其验证规则,可以更清晰地分离配置和业务代码。 总结起来,Example7展示了如何在...

    Servlet表单Get和Post方式读取

    3. **多个相同名字的参数**:对于POST请求,如果表单中有多个同名参数,`getParameter()`只会返回第一个值,而`getParameterValues()`则会返回一个字符串数组,包含所有值。 4. **安全性**:GET请求的参数是可见的...

    jsp语言完整表单教程

    如果表单中有多个同名参数,则`getParameter()`方法只会返回第一个值。为了获取所有同名参数的值,可以使用`getParameterValues()`方法,它会返回一个包含所有值的数组。 **示例代码:** ```java String username =...

    Struts2访问Web元素

    当用户提交表单时,Struts2会自动将表单数据填充到对应的Action属性中,无需手动获取HTTP请求参数。 此外,Struts2还提供了丰富的插件系统,如Tiles插件,可以方便地进行页面布局。同时,Struts2与Spring框架的集成...

    php获取表单中多个同名input元素的值

    在PHP编程中,处理前端表单提交的数据是常见的...通过以上方法,你可以有效地处理前端表单中多个同名`input`元素的值。在实际开发中,还需要考虑错误处理、用户体验、数据安全等多个方面,确保程序的健壮性和安全性。

    struts2-处理类型转换

    若需自定义错误信息,可以在Action所在目录下创建与Action同名的properties文件,例如PersonAction.properties,并在其中指定错误信息,如:`invalid.fieldvalue.person=无法把表单参数转换成 Person 类型`。...

Global site tag (gtag.js) - Google Analytics