1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.jelly.tags.http;
18
19 import java.net.MalformedURLException;
20 import org.apache.commons.httpclient.HttpMethod;
21 import org.apache.commons.httpclient.NameValuePair;
22 import org.apache.commons.httpclient.methods.PostMethod;
23
24
25 /***
26 * A http post
27 *
28 * @author dion
29 */
30 public class PostTag extends HttpTagSupport {
31
32 /*** the post method */
33 private PostMethod _postMethod;
34
35 /*** Creates a new instance of PostTag */
36 public PostTag() {
37 }
38
39 /***
40 * Return a {@link HttpUrlMethod method} to be used for post'ing
41 *
42 * @return a HttpUrlMethod implementation
43 * @throws MalformedURLException when the {@link getUrl() url} or
44 * {@link #getPath() path} is invalid
45 */
46 protected HttpMethod getHttpMethod() throws MalformedURLException {
47 if (_postMethod == null) {
48 _postMethod = new PostMethod(getResolvedUrl());
49 }
50 return _postMethod;
51 }
52
53 /***
54 * Set the current parameters on the url method ready for processing
55 *
56 * This method <strong>must</strong> be called after
57 * {@link getHttpUrlMethod}
58 */
59 protected void setParameters(HttpMethod method) {
60 NameValuePair nvp = null;
61 for (int index = 0; index < getParameters().size(); index++) {
62 NameValuePair parameter = (NameValuePair) getParameters().
63 get(index);
64 ((PostMethod) method).addParameter(parameter);
65 }
66 }
67
68 public void doTag(org.apache.commons.jelly.XMLOutput xmlOutput) throws org.apache.commons.jelly.JellyTagException {
69 super.doTag(xmlOutput);
70 _postMethod = null;
71 }
72
73 }