【发布时间】:2020-07-29 14:35:19
【问题描述】:
我根据以下代码设置地图时遇到问题。这种方式是从用户那里接收到参数的值,但是根据相关的key在map中输入值后,打印出null。 请指导我
public class ImportBatchCardRespServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private FileOutputStream out;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
// Path path = Paths.get("F:\\");
System.out.println("ImportBatchCardRespServlet-AccessFilesPath: " + getInitParameter("AccessFilesPath")); // vahid-log
Path path = Paths.get(getInitParameter("AccessFilesPath"));
// List<FileItem> items = new ServletFileUpload(new
// DiskFileItemFactory()).parseRequest(request);
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory())
.parseRequest(new ServletRequestContext(req));
Map<String,String> formFields = new HashMap<>();
for (FileItem item : items) {
if (item.isFormField()) {
// Process regular form field (input type="text|radio|checkbox|etc", select,
// etc).
String fieldName = item.getFieldName();
String fieldValue = item.getString();
System.out.println("req-fieldName: "+fieldName+",req-fieldValue: "+fieldValue); //vahid-log
formFields.put(fieldName,fieldValue);
System.out.println("map-fieldName: "+formFields.get(fieldName)+",map-fieldValue: "+formFields.get(fieldValue)); //vahid-log
【问题讨论】:
-
你确定
item.getString()总是返回一个非空值吗? -
是的。在这部分代码中 System.out.println("req-fieldName:" + fieldName + ", req-fieldValue:" + fieldValue);返回值正确。
-
只有在 "formFields" 对象 (formFields.put(fieldName,fieldValue);) 中调用 "put" 方法和 println "fieldValue" (formFields.get(fieldValue)) 后才返回空值!
标签: java dictionary servlets null