<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!-- CVS $Id$ -->

<xsp:page language="javascript"
          xmlns:xsp="http://apache.org/xsp"  
          xmlns:xsp-response="http://apache.org/xsp/response/2.0">

<page>

<h1>xsp-response logicsheet output</h1>
<table border="1">
<tr>
  <th>Logicsheet tag</th><th>Output</th><th>Java method</th><th>Output</th></tr>
<tr>
  <td>get-character-encoding</td><td><xsp-response:get-character-encoding/></td>
  <td>getCharacterEncoding</td><td><xsp:expr>response.getCharacterEncoding()</xsp:expr></td>
    </tr>
<tr>
  <td>get-locale</td><td><xsp-response:get-locale/></td>
  <td>getLocale</td><td><xsp:expr>response.getLocale()</xsp:expr></td>
    </tr>
<tr>
  <td>set-locale to GERMANY</td><td>
    <xsp-response:set-locale><xsp:expr>java.util.Locale.GERMANY</xsp:expr></xsp-response:set-locale>
      </td>
    </tr>
<tr>
  <td>get-locale</td><td><xsp-response:get-locale/></td>
  <td>getLocale</td><td><xsp:expr>response.getLocale()</xsp:expr></td>
    </tr>

<xsp-response:set-locale><xsp:expr>java.util.Locale.getDefault()</xsp:expr></xsp-response:set-locale>

<tr>
  <td>add-date-header</td><td>
    <xsp-response:add-date-header name="X-Cocoon-Date">
      <xsp-response:date><xsp:expr>new java.util.Date()</xsp:expr></xsp-response:date>
        </xsp-response:add-date-header></td>
  <td>addDateHeader</td><td><xsp:logic>response.addDateHeader("X-Java-Date", -1);</xsp:logic></td>
    </tr>

<tr>
  <td>add-header</td><td>
    <xsp-response:add-header name="X-Cocoon-Header" value="Value!"/>
      </td>
  <td>addHeader</td><td><xsp:logic>response.addHeader("X-Java-Header", "Value!");</xsp:logic></td>
    </tr>

<tr>
  <td>add-int-header</td><td>
    <xsp-response:add-int-header name="X-Cocoon-Int">
      <xsp-response:value><xsp:expr>5</xsp:expr></xsp-response:value>
        </xsp-response:add-int-header></td>
  <td>addIntHeader</td><td><xsp:logic>response.addIntHeader("X-Java-Int", 5);</xsp:logic></td>
    </tr>

<tr>
  <td>contains-header</td><td>
    <xsp-response:contains-header name="X-Cocoon-Header"/>
      </td>
  <td>containsHeader</td><td><xsp:expr>response.containsHeader("X-Java-Header")</xsp:expr></td>
    </tr>

<tr>
  <td>encode-url</td><td>
    <xsp-response:encode-url url="http://localhost:8080/cocoon/welcome"/>
      </td>
  <td>encodeURL</td><td><xsp:expr>response.encodeURL("http://localhost:8080/cocoon/welcome")</xsp:expr></td>
    </tr>
<!--
xsp-response:add-cookie
xsp-response:set-date-header
xsp-response:set-header
xsp-response:set-int-header
-->
</table>

	<h1>xsp-response logicsheet output (as xml)</h1>
<textarea cols="100" rows="12">
get-character-encoding      <xsp-response:get-character-encoding as="xml"/>
get-locale                  <xsp-response:get-locale as="xml"/>
contains-header             <xsp-response:contains-header name="X-Cocoon-Header" as="xml"/>
encode-url                  <xsp-response:encode-url url="http://localhost:8080/cocoon/welcome" as="xml"/>
</textarea>

</page>
</xsp:page>
