I have the following form:
Into Contact Servlet code:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String b = request.getParameter("Problem");
String a = request.getParameter("message");
request.setAttribute("message", a);
request.setAttribute("problem", b);
request.getRequestDispatcher("./index.jsp").forward(request, response);
}
Just testing the message, into index.jsp code:
Problem: ${problem}
Message: ${message}
It is working, but I got a problem, if the written message be:
"It is a message;
It is a new line of message.
I'm breaking lines."
The printed message will be:
"It is a message;It is a new line of message.I'm breaking lines."
How can I get, with a String, the written line breaks from textarea message?
解决方案
Use the StringBuffer like this,
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String b = request.getParameter("Problem");
// String a = request.getParameter("message");
StringBuffer text = new StringBuffer(request.getParameter("message"));
int loc = (new String(text)).indexOf('\n');
while(loc > 0){
text.replace(loc, loc+1, "
");
loc = (new String(text)).indexOf('\n');
}
request.setAttribute("message", text);
request.setAttribute("problem", b);
request.getRequestDispatcher("./index.jsp").forward(request, response);
}