소스 검색

[jasperserver axis] 新增文件时,针对jrxml等资源类型,自动添加文件后缀

sunyj 8 년 전
부모
커밋
e73fc43251
1개의 변경된 파일15개의 추가작업 그리고 2개의 파일을 삭제
  1. 15 2
      src/main/java/com/uas/report/axis/BasicResourceHandler.java

+ 15 - 2
src/main/java/com/uas/report/axis/BasicResourceHandler.java

@@ -143,10 +143,10 @@ public class BasicResourceHandler implements ResourceHandler {
 		String wsType = resourceDescriptor.getWsType();
 		if (wsType.equals(ResourceDescriptor.TYPE_FOLDER)) {
 			resource = new Folder();
+			resource.setUri(resourceDescriptor.getUriString());
 		} else {
 			resource = toFileResource(resourceDescriptor);
 		}
-		resource.setUri(resourceDescriptor.getUriString());
 		resource.setName(resourceDescriptor.getName());
 		resource.setLabel(resourceDescriptor.getLabel());
 		resource.setDescription(resourceDescriptor.getDescription());
@@ -157,10 +157,23 @@ public class BasicResourceHandler implements ResourceHandler {
 
 	private FileResource toFileResource(ResourceDescriptor resourceDescriptor) {
 		FileResource fileResource = new FileResource();
-		fileResource.setFileType(resourceDescriptor.getWsType());
+		String wsType = resourceDescriptor.getWsType();
+		fileResource.setFileType(wsType);
 		if (resourceDescriptor.hasData()) {
 			fileResource.setData(resourceDescriptor.getData());
 		}
+		String uriString = resourceDescriptor.getUriString();
+		if (!uriString.toLowerCase().matches("^[\\s\\S]+\\.[\\S]+$")) {
+			// 针对以下类型,自动添加文件后缀
+			if (wsType.equals(ResourceDescriptor.TYPE_JRXML) || wsType.equals(ResourceDescriptor.TYPE_JAR)
+					|| wsType.equals(ResourceDescriptor.TYPE_XML) || wsType.equals(ResourceDescriptor.TYPE_JSON)
+					|| wsType.equals(ResourceDescriptor.TYPE_CSS)) {
+				uriString += "." + wsType;
+			} else {
+				throw new IllegalStateException("请指定文件后缀");
+			}
+		}
+		fileResource.setUri(uriString);
 		return fileResource;
 	}