【问题标题】:How to set value in c:set attribute in jsp如何在 jsp 中的 c:set 属性中设置值
【发布时间】:2014-09-17 13:10:11
【问题描述】:

你能告诉我如何设置我的c:set 的值吗?

我正在尝试将item[0] 的值设置为TransactionAction 中的bean 属性id 并将其发送到控制器类。

当我在控制器类中打印此值时,它给了我 null。但是我可以查看这个 JSP 中的值。

            <table>

                <tr><th>ID</th>
                    <th>LOGIN ID</th>
                    <th>LAST UPDATE BY</th>
                    <th>TRANSACTION TYPE</th>
                    <th>STATUS</th>
                </tr>    
                <c:forEach var="item" items="${ToDoList}">
                    <tr>
                        <td>${item[0]}</td>
                        <td>${item[1]}</td>
                        <td>${item[2]}</td>
                        <td>${item[3]}</td>   
                        <td>${item[4]}<td>

                        <td>
                            <c:set value = "item[0]" target="${transactionAction}" property="id" />

                            <form:select path="action" tabindex="50">

                        <form:option value="----------Please select---------" />
                        <form:option value="APPROVE" label="APPROVE" />
                        <form:option value="REJECT" label="REJECT"/> 
            </li>
        </form:select>
                    </tr>
                </c:forEach>

            </table>

        </c:if>
<input type="submit" value="Submit"> 

    </form:form>

</body>
</html>

控制器类将ToDoList的值发送到上面的JSP

  public String adduser(LoginForm request,ModelMap map1) throws Exception {
    String currentUser = sessionUser.getUserName();
    System.out.println("========add user model ============================="+sessionUser.getUserName());
    String result = loginservice.adduser(request);
    List trx = loginservice.trxdetail(currentUser);
    map1.addAttribute("user", sessionUser.getUserName());
    map1.addAttribute("dateTime", sessionscopebillingdata.getDate());
    System.out.println("username from the controller class " + sessionUser.getUserName());        
    map1.addAttribute("ToDoList", trx);   
    map1.addAttribute("action",new TransactionAction());
    return "UserToDoList";
}

以下是我使用休眠从数据库中获取值的方法

public List trxdetail(String userName) {
    Session session = sessionFactory.getCurrentSession();
    Query query;
    query = session.getNamedQuery("Loginuser.findApprover");
    query.setString("loginId", userName.toUpperCase());
    Long ownerId = (Long) query.uniqueResult();
    Query qry = session.createQuery("select lu.id,lu.loginId,lu.lastUpdateBy,trx.transactionType,trx.status from Loginuser lu , BillingSolutionTrx trx where lu.id = ref_id and owner_Trx_Id='" + ownerId + "'");
    BillingSolutionTrx transactionDetail = new BillingSolutionTrx();
    List transactionList = qry.list();


    return transactionList;
} 

【问题讨论】:

    标签: hibernate jsp spring-mvc jstl


    【解决方案1】:

    在您的模型中,该对象被称为 action 而不是 transactionAction

    尝试用target="${action}"替换target="${transactionAction}"

    【讨论】:

    • 您好,谢谢,在我更改为以下内容后,我仍然得到 null
    • 你的意思是控制器端的 null ?您确定发布了您期望的值吗?使用 Firefox 调试您发布的请求以了解您发布的内容。
    • 是的,在控制器类上为空。我检查了我通过调试发布的值,但 item[0] 的值不包括在内。请指教
    • 如果你想发布这个值,你必须在一个表单元素中设置它,例如一个输入。然后它将被发布,您将能够在您的控制器中检索它;
    • 那么下面的目的是什么,我以为下面的行是通过bean id设置值,请帮忙解释一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    相关资源
    最近更新 更多