我们应用程序的管理员端部分要求用户编辑各种类型的内容,这涉及使用富文本编辑器或使用文件生成可由“客户端”看到的内容'应用程序的用户。它是一种特定于域的CMS lite。
因为这个“内容”可以在应用程序的各个部分中使用,所以它在我们的一些域实体中作为单独的关系包含在内。我们决定创建自己的标记库,用于定义一些表单字段,当管理员编辑包含一段内容的实体时,可以使用这些字段来编辑此内容。
我们希望能够做到以下几点。
<form:form modelAttribute=...>
<olo:content-editor path="content"/>
<!-- Other form fields for this entity -->
<form:.../>
<form:.../>
</form:form>
然后,olo:content-editor
标记会根据所需的内容类型生成许多表单字段。这意味着它可能(或者,根据内容的类型,可能不会!)生成包含以下内容的filebased-content
标记:
<input type="file" name="file/>
可用于替换与基于文件的内容关联的文件。
问题是Spring文档表明文件上传要求表单让enctype
定义它发送多部分表单数据。由于文件上传是标记的一部分,而不是表单本身,我们发现这是不可取的。我们希望能够在表单中使用我们的olo:content-editor
标记,而无需更改表单enctype
属性。这可能吗?
我们可以想到两个客户端黑客可以解决我们的问题,但两者似乎都是相当难看的解决方案:
enctype
,以便始终将其设置为适当的类型。 (非常难看。)