大部分实现,没加@限制,而且模板硬编码