struct2框架jsp页面传参失败

jsp页面对象方式传参进action中,在action中定义了getter、setter方法,但是还是取不到值!

clipboard.png

clipboard.png

但是提示结果为空:

clipboard.png

阅读 3.1k
1 个回答

有写form么?html页面中

修改答案:

在文件头添加 <%@ taglib prefix="s" uri="/struts-tags"%>
输入框写成 <s:textfield id="userid" name="user.userid"/> 写成类似这样的

继续修改答案:

运行你的项目我发现,在添加 flower 时候,控制台报错

Caused by: java.lang.IllegalStateException: Cannot convert value of type [com.xhydxs.action.AdminUserAction] to required type [com.xhydxs.entity.AdminUser] for property 'adminUser': no matching editors or conversion strategy found

可以发现是类型转化问题,为什么你会让 AdminUserAction 转化成 AdminUser 呢?于是我使用全局查找 AdminUserAction 和 AdminUser【用 Atom 编辑器】。终于让我发现!

applicationContext.xml 文件中:

    <bean name="adminUser" class="com.xhydxs.action.AdminUserAction"
        scope="prototype">
        <property name="adminUserBiz" ref="adminUserBiz" />
    </bean>

*.hbm.xml 文件中:

    <many-to-one name="adminUser" class="com.xhydxs.entity.AdminUser" fetch="select">
        <column name="UPD_OPR" length="20" not-null="true" />
    </many-to-one>

发现了么?name 都是 adminUser,然而 class 分别对应着AdminUserAction和AdminUser。然后把 AdminUserAction 对应的name改掉就行了。。。。至于为什么上面这个错误会导致goods为null,因为你在Goods类里有一个AdminUser成员变量,导致struts就没法构建goods这个实例了>3<

宣传栏