1 8 13 14 package org.webjmx.tags; 15 16 import java.io.*; 17 import java.util.*; 18 import javax.management.*; 19 import javax.servlet.http.*; 20 import javax.servlet.jsp.*; 21 import javax.servlet.jsp.tagext.*; 22 23 29 public class FormMBeanTag extends TagSupport 30 implements JMXTaglibConstants, ILocatorTag 31 { 32 33 34 private String action; 35 36 37 private String name; 38 39 40 private String mbean; 41 42 43 private String method = "POST"; 44 45 46 private String forward; 47 48 49 private String error; 50 51 52 private String invoke; 53 54 55 private String classname; 56 57 58 private String unregister; 59 60 61 private String label; 62 63 64 private String locator; 65 66 67 private String operationInfo; 68 69 70 private String mbeanInfo; 71 72 73 private String onsubmit; 74 75 78 public int doStartTag() 79 throws JspException 80 { 81 HttpServletResponse response = (HttpServletResponse)pageContext.getResponse(); 82 StringBuffer results = new StringBuffer ("<FORM"); 83 results.append(" ACTION=\""); 84 if(action == null) 85 action = pageContext.getServletContext().getInitParameter(TAGLIB_ACTION_URL).toString(); 86 87 results.append(response.encodeURL(action)); 88 results.append("\""); 89 90 if(operationInfo != null) 91 { 92 Object o = pageContext.getAttribute(operationInfo); 93 if(o == null || !(o instanceof MBeanOperationInfo)) 94 throw new JspException("tag attribute operationInfo must point to page attribute of type MBeanOperationInfo, found: " +o); 95 invoke = ((MBeanOperationInfo)o).getName(); 96 if(label == null) 97 label = ((MBeanOperationInfo)o).getName(); 98 }else if(mbeanInfo != null) 99 { 100 Object o = pageContext.getAttribute(mbeanInfo); 101 if(o == null || !(o instanceof MBeanInfo)) 102 throw new JspException("tag attribute mbeanInfo must point to page attribute of type MBeanInfo, found: " +o); 103 classname = ((MBeanInfo)o).getClassName(); 104 if(label == null) 105 label = "Create"; 106 } 107 108 if(name != null) 109 { 110 results.append(" NAME=\""); 111 results.append(name); 112 results.append("\""); 113 } 114 if(method != null) 115 { 116 results.append(" METHOD=\""); 117 results.append(method); 118 results.append("\""); 119 } 120 if(onsubmit != null) 121 { 122 results.append(" ONSUBMIT=\""); 123 results.append(onsubmit); 124 results.append("\""); 125 } 126 if(invoke != null) 127 { 128 results.append("\">\n<INPUT TYPE=HIDDEN NAME=\""); 129 results.append(TAGLIB_INVOKE); 130 results.append("\" VALUE=\""); 131 results.append(invoke); 132 } 133 if(classname != null) 134 { 135 results.append("\">\n<INPUT TYPE=HIDDEN NAME=\""); 136 results.append(TAGLIB_CLASSNAME); 137 results.append("\" VALUE=\""); 138 results.append(classname); 139 } 140 if( getUnregister() != null) 141 { 142 results.append("\">\n<INPUT TYPE=HIDDEN NAME=\""); 143 results.append(TAGLIB_UNREGISTER); 144 results.append("\" VALUE=\"true"); 145 } 146 147 results.append("\">\n"); 148 try{ pageContext.getOut().write(results.toString()); } 149 catch(IOException ex) { ex.printStackTrace(); } 150 151 if(Boolean.getBoolean(DEBUG_PROP)) pageContext.getServletContext().log("inserting forward path: " +forward); 153 if(forward == null) 154 { 155 HttpServletRequest httpReq = (HttpServletRequest)pageContext.getRequest(); 156 forward = httpReq.getRequestURI().substring(httpReq.getContextPath().length() +1); 157 if(httpReq.getQueryString() != null) 158 forward += '?' +httpReq.getQueryString(); 159 if(Boolean.getBoolean(DEBUG_PROP)) pageContext.getServletContext().log("new forward URL: " +forward); 160 } 161 pageContext.getSession().setAttribute(TAGLIB_FORWARD, response.encodeURL(forward)); 162 if(error != null) 163 pageContext.getSession().setAttribute(TAGLIB_ERROR, response.encodeURL(error)); 164 165 return (EVAL_BODY_INCLUDE); 166 } 167 168 171 public int doEndTag() 172 throws JspException 173 { 174 try 175 { 176 Writer out = pageContext.getOut(); 177 if(locator != null) 178 { 179 out.write("<INPUT TYPE=HIDDEN NAME=\""); 180 out.write(TAGLIB_SERVER); 181 out.write("\" VALUE=\""); 182 if(locator != null) 183 out.write(locator); 184 else 185 out.write(';'); 186 out.write("\"/>\n"); 187 } 188 if(mbean != null) 189 { 190 out.write("<INPUT TYPE=HIDDEN NAME=\""); 191 out.write(TAGLIB_NAME); 192 out.write("\" VALUE=\""); 193 out.write(mbean); 194 out.write("\"/>\n"); 195 } 196 197 203 out.write("<INPUT TYPE=\"SUBMIT\" VALUE=\""); 204 if(label != null) 205 out.write(label); 206 else if(invoke != null) 207 out.write(invoke); 208 else if(classname != null) 209 out.write("Create"); 210 else if( getUnregister() != null) 211 out.write("Unregister"); 212 else 213 out.write("Submit"); 214 out.write("\"/></FORM>"); 215 }catch(IOException ex) { ex.printStackTrace(); } 216 return (EVAL_PAGE); 217 } 218 219 222 public String getAction() 223 { 224 return action; 225 } 226 227 230 public void setAction(String action) 231 { 232 this.action = action; 233 } 234 235 238 public String getName() 239 { 240 return name; 241 } 242 243 246 public void setName(String name) 247 { 248 this.name = name; 249 } 250 251 254 public String getMbean() 255 { 256 return mbean; 257 } 258 259 262 public void setMbean(String mbean) 263 { 264 this.mbean = mbean; 265 } 266 267 270 public String getMethod() 271 { 272 return method; 273 } 274 275 278 public void setMethod(String method) 279 { 280 this.method = method; 281 } 282 283 286 public String getForward() 287 { 288 return forward; 289 } 290 291 294 public void setForward(String forward) 295 { 296 this.forward = forward; 297 } 298 299 302 public String getError() 303 { 304 return error; 305 } 306 307 310 public void setError(String error) 311 { 312 this.error = error; 313 } 314 315 318 public String getInvoke() 319 { 320 return invoke; 321 } 322 323 326 public void setInvoke(String invoke) 327 { 328 this.invoke = invoke; 329 } 330 331 334 public String getClassname() 335 { 336 return classname; 337 } 338 339 342 public void setClassname(String classname) 343 { 344 this.classname = classname; 345 } 346 347 350 public String getUnregister() 351 { 352 return unregister; 353 } 354 355 358 364 365 368 public void setUnregister(String unregister) 369 { 370 this.unregister = unregister; 371 } 372 373 376 public String getLabel() 377 { 378 return label; 379 } 380 381 384 public void setLabel(String label) 385 { 386 this.label = label; 387 } 388 389 392 public void release() 393 { 394 action = classname = error = forward = invoke = label = mbean = method = name = locator = unregister = null; 395 } 396 397 400 public String getLocator() 401 { 402 return locator; 403 } 404 405 408 public void setLocator(String locator) 409 { 410 this.locator = locator; 411 } 412 413 416 public String getOperationInfo() 417 { 418 return operationInfo; 419 } 420 421 424 public void setOperationInfo(String operationInfo) 425 { 426 this.operationInfo = operationInfo; 427 } 428 429 432 public String getMbeanInfo() 433 { 434 return mbeanInfo; 435 } 436 437 440 public void setMbeanInfo(String mbeanInfo) 441 { 442 this.mbeanInfo = mbeanInfo; 443 } 444 445 448 public String getOnsubmit() { 449 return onsubmit; 450 } 451 452 455 public void setOnsubmit(String onsubmit) { 456 this.onsubmit = onsubmit; 457 } 458 459 } 460 | Popular Tags |