SelectOption.java
资源名称:某公司的java培训教材 [点击查看]
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:4k
源码类别:
Java编程
开发平台:
Java
- package bible.jsp.tags;
- import java.io.*;
- import java.util.*;
- import javax.servlet.jsp.*;
- import javax.servlet.jsp.tagext.*;
- /**
- * Title: SelectOption
- * Description: Tag extension to set selected option(s) in a select list
- * Copyright: Copyright (c) 2001
- * Company: ZeeWare Inc.
- * @author Gary Wells
- * @version 1.0
- */
- public class SelectOption extends BodyTagSupport {
- /** Array of values to be selected */
- String[] values;
- /**
- * Returns an array of selected values.
- * @return the array of selected values.
- */
- public String[] getValue() {
- return values;
- }
- /**
- * Sets the array of selected values to the array parameter.
- * @param newArrayValues the desired array of selected values.
- */
- public void setValue(String[] newArrayValues) {
- values = newArrayValues;
- }
- /**
- * Creates an array of selected values from the single value parameter.
- * @param newValue the desired array of selected values.
- */
- public void setValue(String newValue) {
- if (newValue != null) {
- values = new String[1];
- values[0] = newValue;
- }
- }
- /**
- * Creates an array of selected values from the single value parameter.
- * @return the desired character.
- * @exception JspTagException
- * if an error occurs while writing to the JSP writer.
- * @see javax.servlet.jsp.JspWriter#write()
- */
- public int doEndTag() throws JspTagException {
- // get body content
- String bodyString = bodyContent.getString();
- if(values != null && values.length > 0) {
- // make a string array of option tags
- StringTokenizer bodyTokens = new StringTokenizer(bodyString,"n");
- ArrayList optionsList = new ArrayList();
- while (bodyTokens.hasMoreTokens()) {
- optionsList.add(bodyTokens.nextToken());
- }
- String[] optionsArray = new String[optionsList.size()];
- optionsArray = (String[])optionsList.toArray(optionsArray);
- // declare work fields
- String optionBeforeValue;
- String optionAfterValue;
- String optionValue;
- String opt;
- StringBuffer optionsOut = new StringBuffer();
- boolean found = false;
- // parse through the array looking for selected values
- for (int i = 0; i < optionsArray.length; i++) {
- opt = optionsArray[i];
- if (opt.trim().length() > 0) {
- // before option value
- optionBeforeValue = opt.substring(0,opt.indexOf("value="));
- //option value
- optionValue = opt.substring(opt.indexOf("value=")+6,opt.indexOf(">"));
- if (optionValue.startsWith("""))
- optionValue = optionValue.substring(1,optionValue.length());
- if (optionValue.endsWith("""))
- optionValue = optionValue.substring(0,optionValue.length()-1);
- // after option value
- optionAfterValue = opt.substring(opt.indexOf("value="),opt.length());
- // if a selected value is found, add to the buffer with "SELECTED"
- found = false;
- for (int j = 0; j < values.length ; j++) {
- if (optionValue.equals(values[j])) {
- found = true;
- optionsOut.append(optionBeforeValue + "SELECTED " + optionAfterValue + "n");
- }
- }
- // if not found, add to the buffer as is
- if (found == false) {
- optionsOut.append(opt + "n");
- }
- }
- }
- // write the buffer
- try {
- pageContext.getOut().write(optionsOut.toString());
- } catch (IOException ex) {
- throw new JspTagException("Fatal IO error");
- }
- // no values, write the body content as is
- } else {
- try {
- pageContext.getOut().write(bodyString);
- } catch (IOException ex) {
- throw new JspTagException("Fatal IO error");
- }
- }
- return EVAL_PAGE;
- }
- }