在struts url标记中传递参数时出现问题

时间:2009-04-25 13:20:11

标签: java struts

<display:column property="id" sortable="true" 
    paramId="id" paramProperty="id" titleKey="adminList.id"/>

<display:column property="username" sortable="true" titleKey="adminList.username"/>
<display:column property="password" sortable="true" titleKey="adminList.password"/>
<display:column>
   <s:url id="removeUrl" action="remove">
    <s:param name="id" value="37" />
    </s:url>
<s:a href="%{removeUrl}" theme="ajax" targets="adminList">Remove</s:a>

 </display:column>
</display:table> 

当我将执行此代码语句

<s:param name="id" value="37" />

将完美地完成,但我无法在struts动作类中获得该值。 如果我通过

<s:param name="id" value="adminList.id" />

那么它什么都不会传递

2 个答案:

答案 0 :(得分:1)

很难确切地说出错了但是我猜错了:

如果你没有在struts动作中获得值,那么检查你是否有一个名为id的属性以及action类中定义的gettId()和settId()方法。 Struts将尝试按名称填充参数中的所有属性。您正在传递名为id。

的参数

问题的第二部分是您没有正确访问变量。试试这个:

    <s:param name="id" value="#attr.adminList.id" />

假设adminList是对象的名称而不是集合的名称?

答案 1 :(得分:0)

adminlist是一个实际的对象还是集合(我只是在看这个名称来做出这个假设)。检查以查看adminList实际上是在ValueStack上,尝试打印<s:property value="%{adminList}"/>如果你没有看到它,你还没有完成将它放在值堆栈上的工作。但假设id对象的实际名称是id,如int id;并且该id对象具有适当的getter,public int getId();然后它应该工作正常。