2013-04-27 39 views
9

Làm cách nào để thoát dấu băm (#) trong các tệp thuộc tính Java.Thuộc tính Java: cách thoát # (băm)

Chúng tôi có khung quốc tế hóa sử dụng các tệp thuộc tính Java.

Có một cột được gọi là số và chúng tôi muốn tiêu đề của nó là #. Điều này ...

number=# 

... không hoạt động.

+0

Vì đó là java, bạn cần thay thế hàm băm ('#') bằng '\\ #' trong mã của bạn. Lưu ý các dấu gạch chéo kép. Hoặc bạn có thể thay thế '#' bằng '\\ u0023'. – Sabin

Trả lời

-1

Vì ký tự thoát mặc định trong Java là '\' cố gắng thoát khỏi hàm băm với nó.

+9

Sử dụng * try * trong câu trả lời là một thực tiễn ** xấu **. Bạn hoặc * biết * và trả lời với sự tự tin, * hoặc * đăng nó như một bình luận hoặc không trả lời gì cả. – skuntsel

+0

Vâng nó thực sự là công thức xấu. xin lỗi vì chuyện đó. – DmiN

6

Cái này nên làm việc mà không cần bất kỳ ký tự thoát:

number=# 

Chỉ cần làm một thử nghiệm nhỏ sử dụng mã ....

prop.load(new FileInputStream ("./res/app.properties")); 
System.out.println("Property: " +prop.getProperty("Number")); 

... và tập tin bất động sản (lưu ý chữ hoa/thường):

Number=# 
Text=test 

Kết quả:

Property: # 

Vì vậy hãy kiểm tra chính tả, chữ viết hoa/chữ thường hoặc xử lý tiếp theo.

Kiểm tra this hoặc that one (liên kết tài liệu Java) để biết thêm.

p.s.: mặc dù không cần thiết bạn cũng có thể thử chuỗi Unicode: \u0023.

Chúc mừng!

0

Tôi tìm thấy câu hỏi này khi tìm cách thoát đúng trong trường hợp sau đây (không làm việc):

zendesk.ticket.subject.prefix=#{{ticket.id}}

Trong trường hợp này cần thoát, nếu không ngoại lệ sau đây xảy ra:

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'createTicketService' defined in file [/Users/***]: Unsatisfied dependency expressed through constructor parameter 6; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'ticket' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public? at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1095) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) ... 64 common frames omitted Caused by: org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'ticket' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public? at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:164) at org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1448) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1088) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) ... 78 common frames omitted Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'ticket' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public? at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:226) at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:94) at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:81) at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:51) at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:87) at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:120) at org.springframework.expression.spel.ast.InlineList.getValueInternal(InlineList.java:95) at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:131) at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:297) at org.springframework.expression.common.CompositeStringExpression.getValue(CompositeStringExpression.java:105) at org.springframework.expression.common.CompositeStringExpression.getValue(CompositeStringExpression.java:42) at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:161) ... 83 common frames omitted

Giải pháp/a sẽ sử dụng #{'#'} kết quả cuối cùng là (WORKS):

zendesk.ticket.subject.prefix=#{'#'}{{ticket.id}}

Các vấn đề liên quan