ShuffleSimpleTag.java
上传用户:bj_pst
上传日期:2019-07-07
资源大小:7353k
文件大小:3k
源码类别:

Java编程

开发平台:

Java

  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements.  See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License.  You may obtain a copy of the License at
  8. *
  9. *     http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. package jsp2.examples.simpletag;
  18. import javax.servlet.jsp.JspException;
  19. import javax.servlet.jsp.tagext.JspFragment;
  20. import javax.servlet.jsp.tagext.SimpleTagSupport;
  21. import java.util.HashMap;
  22. import java.io.IOException;
  23. /**
  24.  * SimpleTag handler that accepts takes three attributes of type
  25.  * JspFragment and invokes then in a random order.
  26.  */
  27. public class ShuffleSimpleTag extends SimpleTagSupport {
  28.     private JspFragment fragment1;
  29.     private JspFragment fragment2;
  30.     private JspFragment fragment3;
  31.     public void doTag() throws JspException, IOException {
  32.         switch( (int)(Math.random() * 6) ) {
  33.             case 0:
  34.                 fragment1.invoke( null );
  35.                 fragment2.invoke( null );
  36.                 fragment3.invoke( null );
  37.                 break;
  38.             case 1:
  39.                 fragment1.invoke( null );
  40.                 fragment3.invoke( null );
  41.                 fragment2.invoke( null );
  42.                 break;
  43.             case 2:
  44.                 fragment2.invoke( null );
  45.                 fragment1.invoke( null );
  46.                 fragment3.invoke( null );
  47.                 break;
  48.             case 3:
  49.                 fragment2.invoke( null );
  50.                 fragment3.invoke( null );
  51.                 fragment1.invoke( null );
  52.                 break;
  53.             case 4:
  54.                 fragment3.invoke( null );
  55.                 fragment1.invoke( null );
  56.                 fragment2.invoke( null );
  57.                 break;
  58.             case 5:
  59.                 fragment3.invoke( null );
  60.                 fragment2.invoke( null );
  61.                 fragment1.invoke( null );
  62.                 break;
  63.         }
  64.     }
  65.     public void setFragment1( JspFragment fragment1 ) {
  66.         this.fragment1 = fragment1;
  67.     }
  68.     
  69.     public void setFragment2( JspFragment fragment2 ) {
  70.         this.fragment2 = fragment2;
  71.     }
  72.     
  73.     public void setFragment3( JspFragment fragment3 ) {
  74.         this.fragment3 = fragment3;
  75.     }
  76. }