StringBuffer将为每个方法调用追加路径

时间:2012-01-19 16:18:59

标签: java stringbuffer contextpath

我在java文件中使用StringBuffer动态设置contextPath。这里对于每个调用,路径根据调用次数附加到StringBuffer对象。如何正确运行以下代码。

StringBuffer blankDeposit = new StringBuffer();
                blankDeposit.setLength(0);
                String rcp = request.getContextPath();
                String create = "Create";
                blankDeposit.append("<a href="+rcp+"/deposit/showBlankDepositSheet.do>"+create+"</a>"+"a blank Deposit Sheet.");

                ActionHelper.formatInfoMessage(
                    mapping,
                    request,blankDeposit.toString());

这里blankDeposit应该有带有String的contextPath(/ myapp)。但我得到一个空白而不是这个。我该怎么做呢。

并且blankDeposit按照我运行的次数追加字符串。如果我调用五次,则上面的变量blankDeposit包含五倍的附加字符串。

2 个答案:

答案 0 :(得分:0)

这可以按预期工作。检查contextPath。如果没关系,请检查blankDeposit上的任何其他代码块。

StringBuffer blankDeposit = new StringBuffer();
blankDeposit.setLength(0);
String rcp = "/myapp";
String create = "Create";
blankDeposit.append("<a href="+rcp+"/deposit/showBlankDepositSheet.do>"+create+"</a>"+"a blank Deposit Sheet.");
System.out.println(blankDeposit.toString());

输出:

<a href=/myapp/deposit/showBlankDepositSheet.do>Create</a>a blank Deposit Sheet.

答案 1 :(得分:0)

我得到了答案。这里我将参数传递给函数

ActionHelper.formatInfoMessage(mapping, request,blankDeposit.toString()); 

但是我将其作为

而不是那个blankDeposit.toString()
String rcp = request.getContextPath();

然后我将此字符串作为formatInfoMessage方法的参数发送。

ActionHelper.formatInfoMessage(mapping,request,"create.a.blank.deposit.sheet",rcp);

将此rcp变量设置为Application.properties文件。它被设置为

info.create.deposit.sheet=<a href="{0}/deposit/showBlankSheet.do">Create</a> a blank Sheet.