春季(4.3.9):
从客户端作为服务器端发送给服务器的请求参数,当通过request-param获取时,该null对象在请求中被视为字符串null
override fun getItemCount(): Int {
dataList = FlickrDBOperation.dataArray
if (dataList!!.isEmpty())
return 0
Log.e("count",dataList!!.size.toString())
return dataList!!.size
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
var itemView: View = LayoutInflater.from(parent.context).inflate(R.layout.imagelist_row,parent,false)
var viewHolder: FlickrAdapter.Holder = FlickrAdapter.Holder(itemView)
return viewHolder
}
override fun onBindViewHolder(holder: Holder, position: Int) {
holder.image_name.text = dataList!!.get(position).name
Picasso.with(context).load(dataList!!.get(position).preUrl).into(holder.row_image)
}
class Holder(itemView: View?) : RecyclerView.ViewHolder(itemView) {
val row_image: ImageView
val image_name: TextView
init {
row_image = itemView!!.findViewById<ImageView>(R.id.row_image)
image_name = itemView!!.findViewById<TextView>(R.id.image_name)
}
}
至于解决方案,我可以通过客户端处理此问题,并首先避免传递null,因此我无法从中获得明确的解决方案(JavaScript: Formdata append null value - NumberFormatException)。
任何人都可以帮助我解决一下Spring框架中从空对象到字符串null转换的类或方法。
答案 0 :(得分:1)
无论您为@ReuqestParam
提供的默认内容是什么,它将被视为字符串,这就是null
被视为"null"
字符串的原因。在spring框架中,Converter<S, R>
和ConverterFactory<S, R>
将从String
转换为相应的类型。
您可以编写自定义转换器并将其添加到spring注册表here
public class StringToIntegerConverter implements Converter<String, Integer> {
@Override
public Integer convert(String from) {
// custom logic
}
}
注册
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new StringToIntegerConverter());
}
}