我需要找出一个名称是否以列表的任何前缀开头,然后删除它,如:
if name[:2] in ["i_", "c_", "m_", "l_", "d_", "t_", "e_", "b_"]:
name = name[2:]
Run Code Online (Sandbox Code Playgroud)
以上仅适用于长度为2的列表前缀.我需要与可变长度前缀相同的功能.
如何有效地完成(代码少,性能好)?
一个for循环迭代每个前缀,然后检查name.startswith(prefix)最终根据前缀的长度切片名称,但它是很多代码,可能效率低,而且"非Pythonic".
有没有人有一个很好的解决方案?
我有一个基于JSF 1.2的webapp,我从中复制了JSTL导入
xmlns:c="http://java.sun.com/jstl/core"
Run Code Online (Sandbox Code Playgroud)
您还可以在Internet上的许多位置找到此导入.我不记得上面无论是在我以前的Web项目的工作或没有,在任何情况下,它并没有在我目前的JSF 2.0 Web应用基础工作.我收到集装箱的警告说:
警告:此页面调用带有前缀c声明的XML命名空间http://java.sun.com/jstl/core,但该命名空间不存在taglibrary.
然后我将导入更改为
xmlns:c="http://java.sun.com/jsp/jstl/core"
Run Code Online (Sandbox Code Playgroud)
... <c:forEach>在基于JSF/RichFaces的webapp中删除了所有令人头疼的问题.
这里的诀窍是什么?从JSF 1.2到2.x的JSTL导入URL是否有任何更改?或者前一行通常是错误的(在JSF中)?这两者有什么区别?
JPA规范是否允许对非主键列的简单引用?
我在我的Countries表上有一个简单的替代/自然键(UNIQUE,NOT NULL)列iso_code,我想在引用中使用它,但Eclipse的Dali显示验证错误,Hibernate抛出MappingException.
是否允许这种常见情况?
我有以下实体(仅显示相关映射):
@Entity
@Table(name = "PQs")
public class PQ implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Integer id;
@Column
private String name;
@ManyToOne(fetch = FetchType.LAZY) // lazy XToOne
@JoinColumn(name = "user_id", referencedColumnName = "person_id")
private User user;
@OneToOne(mappedBy = "pq", fetch = FetchType.LAZY) // lazy XToOne
private Group group;
@OneToOne(mappedBy = "pq", fetch = FetchType.LAZY) // lazy XToOne
private Tendering tendering;
...
}
Run Code Online (Sandbox Code Playgroud)
请注意上面的注释:@XToOne与其他实体有三种关系:
用户(具有简单ID作为PK的SecurityIdentity子类,由PQ表示所有者):
@Entity
@Table(name = "Users")
@DiscriminatorValue(value = "user")
public class User extends …Run Code Online (Sandbox Code Playgroud) 我有以下代码来管理两种存储库.两个存储库类都继承一个接口以允许重新初始化其资源.
public interface CachingRepository
{
public void invalidateCache();
}
Run Code Online (Sandbox Code Playgroud)
全局,应用程序范围的回购:
@Named("globalRepo")
@ApplicationScoped
public class GlobalRepository implements CachingRepository
{
private List<Category> categories;
...
@Override
public void invalidateCache()
{
categories = null;
}
...
}
Run Code Online (Sandbox Code Playgroud)
每个用户,会话范围的回购:
@Named("userRepo")
@SessionScoped
//@Stateful // <- NOTE HERE
public class UserRepository implements CachingRepository, Serializable
{
private List<MyFile> files;
@Override
public void invalidateCache()
{
files = null;
}
...
}
Run Code Online (Sandbox Code Playgroud)
将此(不@Stateful)注入上下文时
@Named
@ViewScoped
public class MyHandler implements Serializable
{
@Inject
private UserRepository userRepo;
...
}
Run Code Online (Sandbox Code Playgroud)
有用.但是,在添加 …
我正在使用JBoss Embedded版本beta3.SP10,我正面临一个应该在某些Hibernate版本中修复的持久性错误.遗憾的是,我不知道在我的JBoss Embedded中使用了什么版本的Hibernate,并且无法找到找到这些信息的方法,hibernate-all.jar捆绑在其中的不包含 org.hibernate.Version类,也没有MANIFEST.
如何在不使用的情况下找到当前加载的Hibernate版本org.hibernate.Version?
MySQLDialect和MySQLInnoDBDialect有什么区别?从那时起我就一直使用MySQLDialect,现在我想知道上面的内容是如何不同的.
任何人?
我现在已经读了好几遍:一些开发人员并不主张在他们的XHTML文件中使用HTML标签交换JSF/Facelets标签.显然,HTML标签不会成为UI组件树的一部分,但它的缺点是什么?
我经常找到作者做这种混合的代码示例:
http://www.ibm.com/developerworks/java/library/j-facelets/
http://www.packtpub.com/article/facelets-components-in-jsf-1.2
http://oreilly.com/catalog/9780596529246
"Seam in Action"还交错了JSF/Facelets和HTML标签.
我对实际使用的内容感到困惑.我开始混合标签,但我开始相信它可能不是正确的选择.但是,我不明白为什么纯粹的方法是可取的.
我肯定知道我有一个表,其中JSF数据表没有给我足够的灵活性来显示我需要的东西,所以这样做是不可能的.
此外,我想知道为什么上面的例子都没有使用f:view等而不是硬编码的html,head,body等标签.
有人可以帮我清楚一下吗?
我有以下树节点类:
public abstract class DocumentTreeNode extends TreeNodeImpl implements javax.swing.tree.TreeNode
{
private Boolean isToC;
...
public Boolean isToC()
{
return isToC;
}
public void setToC(Boolean isToC)
{
this.isToC = isToC;
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个简单的复选框,指示文档是否包含在任何内容中.但是,当试图从JSF 2 EL中引用它时
...
<h:selectBooleanCheckbox value="#{node.isToC}" />
...
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
引起:javax.el.PropertyNotFoundException:/main.xhtml @ 541,64 value ="#{node.isToC}":类'ChapterTreeNode'没有属性'isToC'.
(我想我几乎尝试了所有组合,至少我觉得这样...... ;-))
如何解决该布尔属性?需要改变什么?
问题源于此:http://www.java.net/forum/topic/glassfish/glassfish/configuring-glassfish-logging-format - 没有答案.
默认的GlassFish 3日志记录格式非常烦人,太长了.
[#|2012-03-02T09:22:03.165+0100|SEVERE|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=113;_ThreadName=AWT-EventQueue-0;| MESSAGE... ]
Run Code Online (Sandbox Code Playgroud)
这只是一个可怕的默认IMO.文档只解释了所有字段,但没有解释如何更改格式:http://docs.oracle.com/cd/E18930_01/html/821-2416/abluk.html
请注意,我将SLF4J与我的webapp一起部署,它也应该选择格式.
你如何改变日志记录格式?
供参考:
这里的链接已过时:在glassfish中安装日志格式化程序 ...
这里的问题尚未得到解答:如何配置GlassFish日志记录以显示时间戳中的毫秒数?...
这里的帖子没有任何结果:http://www.java.net/forum/topic/glassfish/glassfish/cant-seem-configure- ...
看起来GlassFish日志记录配置本身就是一个问题.有人可以帮忙吗?