VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 733|回复: 6

自定义struts 标签 能接受bean的一个List list参数问题

[复制链接]

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-2-17 22:00:02 | 显示全部楼层 |阅读模式
我写了一个自定义struts标签,
/*
* 创建日期 2017-1-4
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package com.yourcompany.struts.operation;
import javax.servlet.*;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.*;
import java.util.*;

/**
* @author xm
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class RadioListTag extends TagSupport{
    List list=null;
    public int doStartTag(){
             //list=(List)pageContext.getAttribute("admin");
           
         JspWriter out=pageContext.getOut();
         int counter=1;
         if(list.size()>0)
                 try{
                 out.print("<table border=0 widht=100% height=100%><tr>");
         for(Iterator it=list.iterator();it.hasNext();){
                
                
                 String value=(String)it.next();
                 out.print("<td align='left'><input type='radio' name='admin' value='"+value+"'>"+value+"</radio></td>");
                 if(it.hasNext()){
                         value=(String)it.next();
                         if(value=="彭丽萍1")
                     out.print("<td align='left'><input type='radio' name='admin' checked='checked' value='"+value+"'>"+value+"</radio></td></tr>");
                         else
                                 out.print("<td align='left'><input type='radio' name='admin' value='"+value+"'>"+value+"</radio></td></tr>");
                 }
                 else{
                         out.print("<td></td></tr>");
                 }
                
             }
            out.print("</table>");
                 }catch(Exception e){
                         e.printStackTrace();
                 }
            return EVAL_BODY_INCLUDE;
    }
}
设标签名为<jeffy:Radio></jeffy:Radio> 想在使用页面有一个java bean,并且有一List的属性,请问怎样将该属性传给<jeffy:Radio></jeffy:Radio>
回复

使用道具 举报

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-7-20 23:15:01 | 显示全部楼层
解决方法之一:
  
           可以在
               JspWriter out=pageContext.getOut();之前加一句代码
               List list=(List)HttpServletRequest.getAttribute("list");
           这样一来就无须再传参数什么的了!
    在此结束这一问题
回复

使用道具 举报

0

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-7-22 23:30:01 | 显示全部楼层
晕,参考下别的标签代码啊,依稀记得好像是给tag类加几个属性就可以了,要符合javabean规范
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-23 03:45:01 | 显示全部楼层
JspWriter out=pageContext.getOut();之前加一句代码
List list=(List)HttpServletRequest.getAttribute("list");
--------------------------------------------------------
request里面传的参数不可能是List的,只有可能是字符串或数组,所以该结论不成立!

回复

使用道具 举报

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-7-25 05:45:01 | 显示全部楼层
JspWriter out=pageContext.getOut();之前加一句代码
List list=(List)HttpServletRequest.getAttribute("list");
--------------------------------------------------------
request里面传的参数不可能是List的,只有可能是字符串或数组,所以该结论不成立!

那直接用array好了,或将list转换成array去也做,
具体没有去试验,只想到了原理
回复

使用道具 举报

0

主题

63

帖子

42.00

积分

新手上路

Rank: 1

积分
42.00
发表于 2020-7-25 09:15:01 | 显示全部楼层
if(value=="彭丽萍1") // equals

然后就是Tag其实都是JavaBean,

<xxx:yyy zzz="abc" />

其实就是类似
tag = new xxx.Yyy();
tag.setZzz("abc");

回复

使用道具 举报

0

主题

63

帖子

42.00

积分

新手上路

Rank: 1

积分
42.00
发表于 2020-7-25 09:30:01 | 显示全部楼层
如果你要List

就是<xxx:yyy list="<%= yourList %>" />
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表