【SSH】ERROR之Error setting expression 'id' with value ['1', ]

在使用SSH框架时,遇到一个错误:Error setting expression 'id' with value ['12', ]。尝试检查映射名称无误后,在后台发现editDishesById方法未被正确调用。问题最终定位为DishesAction类中的id和dishes属性缺少get、set方法。添加相应的方法后,问题得到解决,成功实现了通过id获取并跳转到修改单条数据页面的功能。" 106611322,9448600,Java Swing GUI详解:窗口、面板、按钮与选择组件,"['Java GUI', 'Swing', '窗口组件', '交互设计', '图形用户界面']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

15:57:04.110 [http-nio-8080-exec-10] ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor - Unexpected Exception caught setting ‘id’ on 'class com.whpu.k16035.action.DishesAction: Error setting expression ‘id’ with value [‘12’, ]

/*
控制层
 */
public class DishesAction {
    //服务层
    private DishesService dishesService;
    private List<Dishes> dishesList;//传值
    //接受单条数据id
    private Integer id;
    //接收对象
    private Dishes dishes;
//    查询数据
    public String selectDishesAll(){
        dishesList = dishesService.selectDishesAll();//得到数据
        System.out.println(dishesList.toString());
        return "list";//跳转
    }
//    修改单条数据--先查询单条数据
    public String editDishesById(){
        System.out.println("调用service层的修改单条数据方法");
        dishes = dishesService.selectDishesById(id);
        System.out.println("得到了id"+dishes.getId());
//        跳转到编辑页面
        return "edit";
    }
    //保存修改的数据并--//重定向到查询全部的方法去
    public String saveDishes(){
        //(dao层通过hibernate更新到数据库)保存修改的数据
        dishesService.saveDishes(dishes);
        return "requert";//跳转到查询页面去更新数据
    }
//    ==================================================

    public DishesService getDishesService() {
        return dishesService;
    }

    public void setDishesService(DishesService dishesService) {
        this.dishesService = dishesService;
    }

    public List<Dishes> getDishesList() {
        return dishesList;
    }

    public void setDishesList(List<Dishes> dishesList) {
        this.dishesList = dishesList;
    }
}
操作当前jsp页面
<c:forEach items="${dishesList}" var="dishes">
            <tr>
                <td>${dishes.name}</td>
                <td><img src="${dishes.imgpath}" width="30px" height="30px" /></td>
                <td>${dishes.recipe}</td>
                <td>${dishes.types.type}</td>
                <td>${dishes.brief}</td>
                <td>${dishes.price}</td>
                <td>${dishes.sums}</td>
                <td>${dishes.priceAssociator}</td>
                <td>${dishes.sumsAssociator}</td>
                <td><a href="${pageContext.request.contextPath}/manage/dishesAction!editDishesById.action?id=${dishes.id}">修改</a></td>
                    <%--<a href="${pageContext.request.contextPath}/empAction!editPage.action?id=${emp.id}">修改</a>--%>
                <td><a href="${pageContext.request.contextPath}/DishesAction!">刪除</a></td>
            </tr>
            </c:forEach>

点击修改后想获取到id并且跳到修改单条数据的页面
于是报了上面那个错。
确定映射的名称没错后,再后台写了个输出语句,发现action的 editDishesById方法不能成功调用。说明href=" p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / m a n a g e / d i s h e s A c t i o n ! e d i t D i s h e s B y I d . a c t i o n ? i d = {pageContext.request.contextPath}/manage/dishesAction!editDishesById.action?id= pageContext.request.contextPath/manage/dishesAction!editDishesById.action?id={dishes.id}">修改没有获取到吧
反反复复找了很久,发现action类中的id和dishes没有写get、set方法。
写了get、set后发现成功了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值