Java JSP标记文件,用于将结果(返回值)输出到变量,而不是打印出来

Java JSP标记文件,用于将结果(返回值)输出到变量,而不是打印出来,java,jsp,jstl,taglib,Java,Jsp,Jstl,Taglib,我有一个自定义JSP标记文件(Java类),它扩展了TagSupport类。在这个类中,我使用了doEndTag方法来计算一些东西,输出如下所示: public class ScopeTag extends TagSupport { private Scope scope; public int doEndTag() throws JspTagException { String content = null; content = String.v

我有一个自定义JSP标记文件(Java类),它扩展了TagSupport类。在这个类中,我使用了doEndTag方法来计算一些东西,输出如下所示:

public class ScopeTag extends TagSupport {
    private Scope scope;
    public int doEndTag() throws JspTagException {
        String content = null;
        content = String.valueOf(srs.getParameterDatasByScope(scope).size()); // src is my service class
        pageContext.getOut().print((content == null) ? "" : content);
        return EVAL_PAGE;
    }
}
现在,我在JSP中使用这个标记类作为:

<td><i:scope type="numOfParamData" scope="${scope}"/> parameter rules</td>
这里,结果(格式化数据)存储到变量
parsedEmpDate


因此,为了实现类似fmt:parseDate的功能,我必须在标记类中做哪些更改?

显然,您可以使用SimpleDataFormat

例如:

Date today = new Date();

        //If you print Date, you will get un formatted output
        System.out.println("Today is : " + today);

        //formatting date in Java using SimpleDateFormat
        SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy");
        String date = DATE_FORMAT.format(today);
        System.out.println("Today in dd-MM-yyyy format : " + date);

        //Another Example of formatting Date in Java using SimpleDateFormat
        DATE_FORMAT = new SimpleDateFormat("dd/MM/yy");
        date = DATE_FORMAT.format(today);
        System.out.println("Today in dd/MM/yy pattern : " + date);

        //formatting Date with time information
        DATE_FORMAT = new SimpleDateFormat("dd-MM-yy:HH:mm:SS");
        date = DATE_FORMAT.format(today);
        System.out.println("Today in dd-MM-yy:HH:mm:SS : " + date);

        //SimpleDateFormat example - Date with timezone information
        DATE_FORMAT = new SimpleDateFormat("dd-MM-yy:HH:mm:SS Z");
        date = DATE_FORMAT.format(today);
        System.out.println("Today in dd-MM-yy:HH:mm:SSZ : " + date);
输出:

Today is : Fri Nov 02 16:11:27 IST 2012
Today in dd-MM-yyyy format : 02-11-2012
Today in dd/MM/yy pattern : 02/11/12
Today in dd-MM-yy:HH:mm:SS : 02-11-12:16:11:316
Today in dd-MM-yy:HH:mm:SSZ : 02-11-12:16:11:316 +0530
我的问题(我的需求)与本帖中的问题几乎相同:

然而,这个线程中的答案与在
.tag
文件中编写标记库代码有关,这对我来说是新的。在编写标记库时,我只知道将其编码为java类。这就是我创建这个线程的原因

尽管如此,我还是从上面的线程中获得了一些提示/帮助,并制定了自己的解决方案: 我使用这行文本作为我的解决方案-
我知道调用方可以通过将自定义标记包装到c:set中来实现这一点,但这并没有简单地声明“var”优雅。

代码如下:

<c:set var="optin">
   <i:scope type="paramData" scope="${scope}" paramNum="40100"/>
</c:set>


没有对标记库java类进行任何更改。

感谢您的回复。实际上,我在这里面临的问题不是如何设置日期的格式。我需要对自定义JSP标记类进行编码,以便将计算出的值/结果存储到一个变量中,然后可以在JSPSo中使用。您的问题是您不知道如何将范围值存储到JSP页面中的变量中?我想使用我的标记,如下所示:-这样,来自标记类的返回值将被放入var-“result”我不确定这是否是您想要的,但是您可以尝试一下:现在您可以看到这个变量值,如:如果您在请求中请求您的值,就是这种情况。
<c:set var="optin">
   <i:scope type="paramData" scope="${scope}" paramNum="40100"/>
</c:set>