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

Java StringBuffer将为每个方法调用追加路径,java,stringbuffer,contextpath,Java,Stringbuffer,Contextpath,我在java文件中使用StringBuffer动态设置contextPath。这里,对于每个调用,路径都会根据调用数附加到StringBuffer对象。如何正确运行下面的代码 StringBuffer blankDeposit = new StringBuffer(); blankDeposit.setLength(0); String rcp = request.getContextPath();

我在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());
StringBuffer blankDeposit=new StringBuffer();
空白沉积。设定长度(0);
字符串rcp=request.getContextPath();
String create=“create”;
空白存款。附加(“+”空白存款单“);
ActionHelper.formatInfoMessage(
测绘,
请求,blankDeposit.toString());
此处
blankDeposit
应具有带有字符串的contextPath(/myapp)。但是我得到的是一个空白而不是这个。我该怎么办呢


然后,
blankDeposit
按我运行的次数追加字符串。如果我调用五次,那么上面的变量blankDeposit包含五次附加字符串。

这与预期的一样有效。检查上下文路径。如果可以,请检查
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());
StringBuffer blankDeposit=new StringBuffer();
空白沉积。设定长度(0);
字符串rcp=“/myapp”;
String create=“create”;
空白存款。附加(“+”空白存款单“);
System.out.println(blankDeposit.toString());
输出:

<a href=/myapp/deposit/showBlankDepositSheet.do>Create</a>a blank Deposit Sheet.
空白存款单。

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

ActionHelper.formatInfoMessage(mapping, request,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.
info.create.deposit.sheet=空白工作表。

setLength是否设置了最大长度?如果删除该行怎么办?不。它将设置字符串缓冲区的最小长度。或者清除缓冲区。首先检查
request.getContextPath()是否为空。也不应该像你说的那样加五次。检查初始化部分,是否在perform/execute method.No下。我没有得到空值。它正在将contextPath检索为
/myapp
。但是该字符串未显示在页面中。请添加sysout以确认您的
rcp
是正确的。谢谢您的回答。但我希望contextPath是一个动态的。不是静态的。这就是为什么我要使用
request.getContextPath()
。你的代码是静态的。我只是举了个例子,它不需要是静态的。您可以使用
contextPath
本身,它应该可以工作。好的。谢谢你的回答。但我的要求是动态上下文路径。