有关JSP变量访问的查询

时间:2011-06-01 14:25:13

标签: jsp jstl

原谅我的无知,我坚持这一点。我需要做的是,访问我的bean中的日期成员并将其传递给定义的方法,如下所示 -

<%!
        SimpleDateFormat desiredDateFormat = new SimpleDateFormat("yyyy/mm/dd HH:mm:ss");


        String getFormattedDate(Date inputDate){
            if(inputDate == null){ 
                return null;
            }
            else{
                return desiredDateFormat.format(inputDate);
            }
        }

    %>

我的jsp页面的Html部分看起来像这样。

<table cellpadding="0" id="proposals" cellspacing="0" border="1 px"
                        class="dataTable">
                        <thead>
                            <tr>
                                <th>Proposal Id</th>
                                <th>Release Candidate Id</th>
                                <th>Proposal Description</th>
                                <th>Application</th>
                                <th>Requester</th>
                                <th>Proposal Status</th>
                                <th>Proposal Creation Date</th>
                                <th>Planned Proposal Deployment Date</th>
                                <th>Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <c:forEach var="proposal"
                                items="${serviceOutput.ret.proposalsList}">
                                <tr class="proposalRow" id="${proposal.id}">
                                    <td><a href="/proposal?action=view&tab=general&proposalId=${proposal.id}">${proposal.id}</a></td>
                                    <td><a href="/releaseCandidate?action=view&tab=general&releaseCandidateId=${proposal.releaseCandidateId}">${proposal.releaseCandidateId}</a></td>
                                    <td>${proposal.description}</td>
                                    <td>${proposal.application}</td>
                                    <td>${proposal.requester}</td>
                                    <td>${proposal.status}</td>
                                    <td><%= getFormattedDate(${proposal.creationDate})%></td>
                            <td><%= getFormattedDate(${proposal.plannedDeploymentDate})%></td>
                                    <td><a
                                        href="/proposal?action=view&tab=general&proposalId=${proposal.id}">Edit</a></td>
                                </tr>
                            </c:forEach>
                        </tbody>
                    </table>

正如您所猜测的那样,我无法在html代码中访问这些日期成员 - creationDate和plannedDeploymentDate。 任何人都可以建议我如何做到这一点。

1 个答案:

答案 0 :(得分:2)

不要使用 scriptlet 。使用JSTL <fmt:formatDate>

将其添加到JSP的顶部:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

然后替换

<td><%= getFormattedDate(${proposal.creationDate})%></td>
<td><%= getFormattedDate(${proposal.plannedDeploymentDate})%></td>

通过

<td><fmt:formatDate value="${proposal.creationDate}" pattern="yyyy/mm/dd HH:mm:ss" /></td>
<td><fmt:formatDate value="${proposal.plannedDeploymentDate}" pattern="yyyy/mm/dd HH:mm:ss" /></td>

删除那个不必要的 scriptlet 函数。

另见: