3 回答

TA貢獻1877條經(jīng)驗 獲得超6個贊
不那么臟(據(jù)我所知)的方法是擴展請求:
public class WrappedHttpServletRequestWrapper extends HttpServletRequestWrapper
{
private final Map<String, String[]> modifiableParameters;
private Map<String, String[]> allParameters = null;
public WrappedHttpServletRequestWrapper (final HttpServletRequest request,
final Map<String, String[]> additionalParams)
{
super(request);
modifiableParameters = new TreeMap<String, String[]>();
modifiableParameters.putAll(additionalParams);
}
@Override
public Map<String, String[]> getParameterMap()
{
// allParameters contains old parameters + the ones you added
return Collections.unmodifiableMap(allParameters);
}
//... other overriden methods
}
并使用它來添加您的參數(shù)。這是參考。
以下是您將如何使用它:
Map<String, String[]> extraParams = new TreeMap<String, String[]>()
HttpServletRequest wrappedRequest = new WrappedHttpServletRequestWrapper(request, extraParams);
request.getRequestDispatcher("url").forward(wrappedRequest, response);

TA貢獻1852條經(jīng)驗 獲得超7個贊
Spring MVC 提供了一組強大的功能來自動為您解析和映射 HTTP 請求和響應(yīng),因此您不必手動執(zhí)行,可以專注于業(yè)務(wù)邏輯。在這種情況下,Spring 可以為您提供所有請求參數(shù)的映射,如下所示:
@PostMapping("/abc") public void abc(@RequestParam Map<String, String> params) { ... }
(或者,如果您需要多值參數(shù),您可以使用MultiValueMap
,它更符合標準,但使用起來更復(fù)雜)。你會得到一份地圖的私人副本,實際上它是一個可變的LinkedHashMap
,但如果你不確定你總是可以直接說new HashMap<>(params)
.
一旦你有了這個params
地圖,你可以添加任何你想要的附加值,但除非你可以在你自己的應(yīng)用程序中將某人發(fā)送到另一個控制器,否則你需要生成一個redirect:
響應(yīng)(在這種情況下,VIN 將在URL)或自己向其他服務(wù)發(fā)出 REST 請求,然后將信息轉(zhuǎn)發(fā)回用戶。

TA貢獻1839條經(jīng)驗 獲得超15個贊
您可以將重定向發(fā)送到另一個網(wǎng)站,但不能將其轉(zhuǎn)發(fā)到另一個網(wǎng)站。使用 resp.sendRedirect(url);
添加回答
舉報