界面是这样子的点击上面的“详细信息” 以后就可以显示这条记录人员的详细信息了。个人详细信息分四张表保存:个人基本信息表(personalInfo);个人简介表(introduceInfo);个人获奖情况表(prizeInfo) 个人论文情况表(thesesInfo)。我的Action是这么写的
public class ManageAllInfoAction extends ActionSupport {
private ManageAllInfoService manageAllInfoService;
private IntroduceInfo introduceInfo;
private PersonalInfo personalInfo;
private PrizeInfo prizeInfo;
private ThesesInfo thesesInfo;
private TUser tuser;
private List<Object> allInfos; public String viewAllInfo(Integer no)
{
allInfos = manageAllInfoService.getAllByNo(personalInfo.getNo());
introduceInfo = (IntroduceInfo) allInfos.get(0);
personalInfo = (PersonalInfo) allInfos.get(1);
prizeInfo = (PrizeInfo) allInfos.get(2);
thesesInfo = (ThesesInfo) allInfos.get(3);
return SUCCESS;
}
Struts如下:
<!--显示个人  详细信息 -->
<action name="allInfos" class="com.hr.action.ManageAllInfoAction"
method="viewAllInfo">
<result name="success">/viewPerson.jsp</result>
<result name="input">/welcome.jsp</result>
</action>JSP页面如下:(详细信息链接的那部分)
<td bgcolor="#eff4fa" class="tdd">
<a
href="allInfos.action?allInfos.no=<s:property value="no"/>">详细信息</a>
</tr>
结果点击详细信息 返回页面 error

解决方案 »

  1.   

    返回页面 error
    是404还是500?
      

  2.   

    没有错误信息
    返回的就是一个error页面,是我们自己设置的一个页面,在struts2 里面设置的。
      

  3.   


    生成的连接是这样的http://localhost:8080/hr/allInfos.action?allInfos.no=2013按理说应该能跳转呀。这个NO=2013 就是我选中人员的工号。
      

  4.   


    生成的连接是这样的http://localhost:8080/hr/allInfos.action?allInfos.no=2013按理说应该能跳转呀。这个NO=2013 就是我选中人员的工号。
    你断点调试下!看看有没有进入viewAllInfo方法!
      

  5.   

    allInfos.no 中的allInfos对应的是List<Object>,我想allInfos应该对应的是一个有no属性的对象,否则struts2在进行属性注入时,无法帮你注入成功,对象.属性。
      

  6.   

    你用struts2接收参数的,allInfos.no=2013这个参数你action里面的对应的allInfos怎么能接收的?根据你下面用的,应该使用personalInfo.no=2013这样的。如果你的页面出现了error肯定会有出错信息的,仔细检查下
      

  7.   

    你这个是传递一个no回来,然后用这个no查询的意思,但是你在前台没有这个处理,相当于直接用list接回来。你应该用一个单独的NO接传递值,然后查询出来的数据放到你的list里面
      

  8.   

    这个是serviceImpl的部分 public List<Object> getAllByNo(Integer no) {
    // TODO Auto-generated method stub
    introduceInfo = introduceInfoDao.getByNo(personalInfo.getNo());
    personalInfo = personalInfoDao.getByNo(personalInfo.getNo());
    prizeInfo = prizeInfoDao.getByNo(personalInfo.getNo());
    thesesInfo = thesesInfoDao.getByNo(personalInfo.getNo());
    List<Object> allInfo = new LinkedList<Object>();
    allInfo.add(0,introduceInfo);
    allInfo.add(1,personalInfo);
    allInfo.add(2,prizeInfo);
    allInfo.add(3,thesesInfo);
    return allInfo;
    }
      

  9.   


    生成的连接是这样的http://localhost:8080/hr/allInfos.action?allInfos.no=2013按理说应该能跳转呀。这个NO=2013 就是我选中人员的工号。
    你断点调试下!看看有没有进入viewAllInfo方法!
    断点调试没有进入方法中…… 所以我觉得ACTION都没执行
      

  10.   

    public class ManageAllInfoAction extends ActionSupport {
    private ManageAllInfoService manageAllInfoService;
    private IntroduceInfo introduceInfo;
    private PersonalInfo personalInfo;
    private PrizeInfo prizeInfo;
    private ThesesInfo thesesInfo;
    private TUser tuser;
    private List<Object> allInfos; public String viewAllInfo(Integer no)
    {
    allInfos = manageAllInfoService.getAllByNo(personalInfo.getNo());
    introduceInfo = (IntroduceInfo) allInfos.get(0);
    personalInfo = (PersonalInfo) allInfos.get(1);
    prizeInfo = (PrizeInfo) allInfos.get(2);
    thesesInfo = (ThesesInfo) allInfos.get(3);
    return SUCCESS;
    }
    上面的 viewAllInfo(Integer no) 这里有问题没有no传递过 再有personalInfo.getNo()也是不对的
    allInfos.action?allInfos.no=<s:property value  你传递过来的是 allInfos.no  应该是
    allInfos = manageAllInfoService.getAllByNo(allInfos.getNo());
      

  11.   


    我很好奇你的超链接写成这样也可以???
    <a
                                                        href="allInfos.action?allInfos.no=<s:property value="no"/>">详细信息</a>
    至于代码问题楼上说的对
      

  12.   

    你设定是什么情况下跳转error界面呢?
    断点不成功的话可以在你的Action里加一些print语句. 打印一下你的allInfos看看里面的信息.
      

  13.   

    1.断点到跳转个人详细信息页面的action,看看跳转有没有问题(没到断点就异常证明配置有问题)
    2.跳转没问题的话,继续一步步断点往下走,看是不是后台处理的有问题
    3.action走到最后也没问题,那要么是个人详细信息页面的jsp有问题,要么就是配置的有问题出问题得试着按顺序排查