0

timezone で Customer を作成する場合、timeZone に値があります。timeZone を表示するときに、選択したオプションを表示したい。

たとえば、Pac​​ific /Midway(Value)ではなくSST、Samoa Standard Time -11:0.0(Selected Option)を表示したい。

この機能のために表示ページで何を変更する必要がありますか?

クラス顧客{

    static constraints = {
    }
    String name
    String timeZone
}

create.gsp で:

<div class="fieldcontain ${hasErrors(bean: customerInstance, field: 'timeZone', 'error')} ">
    <label for="timeZone">
        <g:message code="customer.timeZone.label" default="timeZone" />

    </label>
    <g:if test="${customerInstance?.timeZone}">
         <g:timeZoneSelect name="timeZone" value="${TimeZone.getTimeZone(customerInstance?.timeZone)}" />
    </g:if>
    <g:else>
         <g:timeZoneSelect name="timeZone" value="${customerInstance?.timeZone}"  />
    </g:else>
</div>

show.gsp:

<span class="property-value" aria-labelledby="timeZone-label"><g:fieldValue bean="${customerInstance}" field="timeZone"/></span>
4

1 に答える 1

0

私は解決策を見つけました

 def show(Long id) {
        def customerInstance = Customer.get(id)
        if (!customerInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'customer.label', default: 'Customer'), id])
            redirect(action: "list")
            return
        }

        def date = new Date()
        TimeZone tz = TimeZone.getTimeZone(customerInstance.timeZone);
        def shortName = tz.getDisplayName(tz.inDaylightTime(date), TimeZone.SHORT);
        def longName = tz.getDisplayName(tz.inDaylightTime(date), TimeZone.LONG);
        def offset = tz.rawOffset;
        def hour = offset / (60 * 60 * 1000);
        def min = Math.abs(offset / (60 * 1000)) % 60;
        def timeZone= shortName+", "+longName+" "+hour+": "+min
        [customerInstance: customerInstance,timeZone:timeZone]
    }

Show.gsp で:

<span class="property-value" aria-labelledby="timeZone-label">${timeZone}</span>
于 2013-08-01T08:44:35.607 に答える