[英]null value in Map<String,String>
根据以下代码设置 map 时遇到问题。 这样从用户那里接收到参数的值,但是在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
formFields.put(fieldName,fieldValue);
向您的 Hashmap 添加一个值/键对,其中“fieldName”是键,“fieldValue”是值。 在下一行...
System.out.println("map-fieldName: "+formFields.get(fieldName)+",map-fieldValue: "+formFields.get(fieldValue)); //vahid-log
...您似乎想测试打印键/值对。 但是,HashMap 的“get”方法参数是键/值对的键,因此
formFields.get(fieldName)
将返回键/值对的值(即 fieldValue)和
formFields.get(fieldValue)
可能会返回null因为没有与值同名的键。 正确的 output 应该使用此检查行代替:
System.out.println("map-fieldName: "+fieldName+",map-fieldValue: "+formFields.get(fieldName)); //vahid-log
干杯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.